diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 608d685..0000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -/DAS_2024_1.iml -/modules.xml -/vcs.xml diff --git a/borschevskaya_anna_lab_1/README.md b/borschevskaya_anna_lab_1/README.md deleted file mode 100644 index 2a99c3f..0000000 --- a/borschevskaya_anna_lab_1/README.md +++ /dev/null @@ -1,61 +0,0 @@ -# Отчет. Лабораторная работа 1 - -В рамках лабораторной работы с помощью технологии контейнеризации docker были развернуты сервисы: -- Redmine - система баг-трекинга -- Postgres - СУБД -- RabbitMQ - брокер сообщений - -## Описание -В docker-compose.yml файле описаны настройки для запуска трех выбранных сервисов в контейнерах. Для большинства строк файла оставлены -комментарии, объясняющие содержимое файла. - -Стоит отметить, для сервиса Redmine было принято решение в качестве сервера баз данных не использовать базу данных по умолчанию - SQLite, -а поднять внешний сервер баз данных Postgres, который был запущен в рамках этого же файла docker-compose.yml. - -Для того, чтобы при старте postgres уже была создана база данных для Redmine, а также пользователь, под учетной записью -которого будет работать Redmine, был написан скрипт init-database.sh с использованием bash и sql: -``` -# Создаем пользователя redmine и БД redminedb -psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL - CREATE USER redmine WITH PASSWORD 'redmine-password'; - CREATE DATABASE redminedb; - GRANT ALL PRIVILEGES ON DATABASE redminedb TO redmine; -EOSQL - -# Даем права на схему public -psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USERNAME" -d redminedb <<-EOSQL - ALTER SCHEMA public OWNER TO redmine; - GRANT ALL ON SCHEMA public TO redmine; -EOSQL -``` - -Этот скрипт монтируется в директорию контейнера postgres ``docker-entrypoint-initdb.d``, которая является специальной точкой входа -для инициализации БД и содержит соответствующие скрипты. - -## Как запустить -Для того, чтобы запустить сервисы, необходимо выполнить следующие действия: -1. Установить и запустить Docker Engine или Docker Desktop (включает в себя Docker Engine и предоставляет UI) -2. Через консоль перейти в папку, в которой расположен файл docker-compose.yml -3. Выполнить команду: -``` -docker compose up -d -``` -В случае успешного запуска всех контейнеров в консоли будет выведено следующее сообщение: -``` -[+] Running 3/3 -✔ Container rabbitmq Started 0.8s -✔ Container redmine Started 1.2s -✔ Container postgres Started 0.5s -``` -Также будет создана папка postgres_data, которая монтируется в контейнере postgres - -Мы также можем увидеть статус всех запущенных контейнеров, если выполним команду: -``` -docker ps -``` -Или обратившись к логам каждого из контейнеров: -`` -docker logs -`` -## Видео-отчет -Работоспособность лабораторной работы можно оценить в следующем [видео](https://disk.yandex.ru/d/15QhUl3KQYSavA). \ No newline at end of file diff --git a/borschevskaya_anna_lab_1/docker-compose.yml b/borschevskaya_anna_lab_1/docker-compose.yml deleted file mode 100644 index 991b838..0000000 --- a/borschevskaya_anna_lab_1/docker-compose.yml +++ /dev/null @@ -1,34 +0,0 @@ -services: - postgres: - image: postgres:latest # название и версия образа docker - container_name: postgres # название контейнера - environment: # блок переменных окружения, которые будут использованы для запуска и настройки - POSTGRES_USERNAME: postgres # имя пользователя супер-пользователя СУБД - POSTGRES_PASSWORD: postgres-admin # имя пользователя супер-пользователя СУБД - PGDATA: "/var/lib/postgresql/data/pgdata" # путь к директории, где Postgres будет хранить свои данные. - ports: - - "5432:5432" # пробрасываем стандартный порт для доступа к postgres - volumes: - - ./postgres_data:/var/lib/postgresql/data/ # монтируем локальную директорию в директорию внутри контейнера с данными базы данных - - ./init-database.sh:/docker-entrypoint-initdb.d/init-database.sh # Монтирует скрипт инициализации базы данных в специальную директорию внутри контейнера. - redmine: - image: redmine - container_name: redmine - ports: - - "8080:3000" - environment: - REDMINE_DB_POSTGRES: postgres # хост, на котором расположена база данных Postgres - REDMINE_DB_USERNAME: redmine # имя пользователя для подключения к базе данных Redmine - REDMINE_DB_DATABASE: redminedb # база данных, к которой будет подключаться Redmine - REDMINE_DB_PASSWORD: redmine-password # пароль, который будет использоваться для подключения - depends_on: # обозначаем зависимость запуска сервиса redmine от запуска сервиса postgres - - postgres - rabbitmq: - container_name: rabbitmq - image: rabbitmq:3-management - environment: - RABBITMQ_DEFAULT_USER: rabbit # переопределяем значения имя для пользователя, который создается по умолчанию - RABBITMQ_DEFAULT_PASS: rabbit-password # переопределяем значения пароля для пользователя, который создается по умолчанию - ports: - - "15672:15672" # порт для доступа к веб-интерфейсу - - "5672:5672" # порт для доступа через протокол AMQP к брокеру сообщений \ No newline at end of file diff --git a/borschevskaya_anna_lab_1/init-database.sh b/borschevskaya_anna_lab_1/init-database.sh deleted file mode 100644 index 92721e1..0000000 --- a/borschevskaya_anna_lab_1/init-database.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -set -e - -# Создаем пользователя redmine и БД redminedb -psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL - CREATE USER redmine WITH PASSWORD 'redmine-password'; - CREATE DATABASE redminedb; - GRANT ALL PRIVILEGES ON DATABASE redminedb TO redmine; -EOSQL - -# Даем права на схему public -psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USERNAME" -d redminedb <<-EOSQL - ALTER SCHEMA public OWNER TO redmine; - GRANT ALL ON SCHEMA public TO redmine; -EOSQL \ No newline at end of file diff --git a/dozorova_alena_lab_1/docker-compose.yml b/dozorova_alena_lab_1/docker-compose.yml deleted file mode 100644 index 95337d5..0000000 --- a/dozorova_alena_lab_1/docker-compose.yml +++ /dev/null @@ -1,33 +0,0 @@ -services: - mediawiki: - image: mediawiki - restart: always - ports: - - 8080:80 - volumes: - - ./volumes/mediawiki:/var/www/html/images - postgres: - image: postgres:12.20-alpine3.20 - restart: always - environment: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: example - ports: - - 5432:5432 - volumes: - - ./volumes/database:/var/lib/mysql - git: - image: gitea/gitea:1.22.2 - container_name: gitea - environment: - - USER_UID=1000 - - USER_GID=1000 - restart: always - volumes: - - ./volumes/gitea:/data - - ./volumes/timezone:/etc/timezone:ro - - ./volumes/localtime:/etc/localtime:ro - ports: - - "3000:3000" - - "222:22" - diff --git a/dozorova_alena_lab_1/readme.md b/dozorova_alena_lab_1/readme.md deleted file mode 100644 index 6a14361..0000000 --- a/dozorova_alena_lab_1/readme.md +++ /dev/null @@ -1,35 +0,0 @@ - -# Лабораторная работа 1 Дозорова ПИбд-42 -В рамках лабораторной работы были развернуты три сервиса с помощью docker-compose: - - Postgres - - MediaWiki - - gitea -## Пример docker-compose для одного из сервисов -``` -postgres: - название сервиса - image: postgres:12.20-alpine3.20 - разворачиваемый образ - restart: always - параметр, означающий перезапуск при падении - environment: - переменные среды для сервиса - POSTGRES_USER: postgres - POSTGRES_PASSWORD: example - ports: - проброшенные порты с хоста внутрь контейнера - - 5432:5432 - volumes: - проброшенные тома с хоста внутрь контейнера - - ./database:/var/lib/mysql -``` -## Запуск -Для запуска лабораторной работы необходимо иметь запущенный Docker\Docker Desktop на устройстве. -Необходимо перейти в папку, где располагается yml файл. Далее открыть терминал и ввести команду: -``` -docker compose up -``` -Для выполнения в фоновом режиме можно использовать флаг `-d`. Результат выполнения: -``` -[+] Running 3/3 - ✔ Container dozorova_alena_lab_1-mediawiki-1 Started 0.7s - ✔ Container gitea Started 1.0s - ✔ Container dozorova_alena_lab_1-postgres-1 Started 1.0s -``` - -## Видео демонстрация -Видеодемонстрация доступна по ссылке: https://drive.google.com/file/d/1cT-p-od2BjCloeTr7kcMGm9hb3htsxcs/view?usp=sharing \ No newline at end of file diff --git a/dozorova_alena_lab_1/volumes/gitea/git/.ssh/authorized_keys b/dozorova_alena_lab_1/volumes/gitea/git/.ssh/authorized_keys deleted file mode 100644 index e69de29..0000000 diff --git a/dozorova_alena_lab_1/volumes/gitea/git/.ssh/environment b/dozorova_alena_lab_1/volumes/gitea/git/.ssh/environment deleted file mode 100644 index f86169b..0000000 --- a/dozorova_alena_lab_1/volumes/gitea/git/.ssh/environment +++ /dev/null @@ -1 +0,0 @@ -GITEA_CUSTOM=/data/gitea diff --git a/dozorova_alena_lab_1/volumes/gitea/gitea/conf/app.ini b/dozorova_alena_lab_1/volumes/gitea/gitea/conf/app.ini deleted file mode 100644 index d13b5e4..0000000 --- a/dozorova_alena_lab_1/volumes/gitea/gitea/conf/app.ini +++ /dev/null @@ -1,98 +0,0 @@ -APP_NAME = Gitea: Git with a cup of tea -RUN_MODE = prod -RUN_USER = git -WORK_PATH = /data/gitea - -[repository] -ROOT = /data/git/repositories - -[repository.local] -LOCAL_COPY_PATH = /data/gitea/tmp/local-repo - -[repository.upload] -TEMP_PATH = /data/gitea/uploads - -[server] -APP_DATA_PATH = /data/gitea -DOMAIN = localhost -SSH_DOMAIN = localhost -HTTP_PORT = 3000 -ROOT_URL = http://localhost:3000/ -DISABLE_SSH = false -SSH_PORT = 22 -SSH_LISTEN_PORT = 22 -LFS_START_SERVER = true -LFS_JWT_SECRET = FrtpRwqeQpRvyJJfayYEK45J0u7LF9mFMnzXzJyxaIM -OFFLINE_MODE = true - -[database] -PATH = /data/gitea/gitea.db -DB_TYPE = postgres -HOST = postgres:5432 -NAME = postgres -USER = postgres -PASSWD = example -LOG_SQL = false -SCHEMA = -SSL_MODE = disable - -[indexer] -ISSUE_INDEXER_PATH = /data/gitea/indexers/issues.bleve - -[session] -PROVIDER_CONFIG = /data/gitea/sessions -PROVIDER = file - -[picture] -AVATAR_UPLOAD_PATH = /data/gitea/avatars -REPOSITORY_AVATAR_UPLOAD_PATH = /data/gitea/repo-avatars - -[attachment] -PATH = /data/gitea/attachments - -[log] -MODE = console -LEVEL = info -ROOT_PATH = /data/gitea/log - -[security] -INSTALL_LOCK = true -SECRET_KEY = -REVERSE_PROXY_LIMIT = 1 -REVERSE_PROXY_TRUSTED_PROXIES = * -INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE3MjYyNTM3NDl9.qF5HZNwWbJzZ1e8Tt-jQZnMgGF1WY-NAruXLpw7kT4o -PASSWORD_HASH_ALGO = pbkdf2 - -[service] -DISABLE_REGISTRATION = false -REQUIRE_SIGNIN_VIEW = false -REGISTER_EMAIL_CONFIRM = false -ENABLE_NOTIFY_MAIL = false -ALLOW_ONLY_EXTERNAL_REGISTRATION = false -ENABLE_CAPTCHA = false -DEFAULT_KEEP_EMAIL_PRIVATE = false -DEFAULT_ALLOW_CREATE_ORGANIZATION = true -DEFAULT_ENABLE_TIMETRACKING = true -NO_REPLY_ADDRESS = noreply.localhost - -[lfs] -PATH = /data/git/lfs - -[mailer] -ENABLED = false - -[openid] -ENABLE_OPENID_SIGNIN = true -ENABLE_OPENID_SIGNUP = true - -[cron.update_checker] -ENABLED = false - -[repository.pull-request] -DEFAULT_MERGE_STYLE = merge - -[repository.signing] -DEFAULT_TRUST_MODEL = committer - -[oauth2] -JWT_SECRET = K4ExL3zYsTAxp7e0CYQu6tbChCprQfp8OrIFeCEUFHQ diff --git a/dozorova_alena_lab_1/volumes/gitea/gitea/home/.gitconfig b/dozorova_alena_lab_1/volumes/gitea/gitea/home/.gitconfig deleted file mode 100644 index ec57bef..0000000 --- a/dozorova_alena_lab_1/volumes/gitea/gitea/home/.gitconfig +++ /dev/null @@ -1,22 +0,0 @@ -[diff] - algorithm = histogram -[core] - logallrefupdates = true - quotePath = false - commitGraph = true -[gc] - reflogexpire = 90 - writeCommitGraph = true -[user] - name = Gitea - email = gitea@fake.local -[receive] - advertisePushOptions = true - procReceiveRefs = refs/for -[fetch] - writeCommitGraph = true -[safe] - directory = * -[uploadpack] - allowfilter = true - allowAnySHA1InWant = true diff --git a/dozorova_alena_lab_1/volumes/gitea/gitea/indexers/issues.bleve/index_meta.json b/dozorova_alena_lab_1/volumes/gitea/gitea/indexers/issues.bleve/index_meta.json deleted file mode 100644 index 5dc3405..0000000 --- a/dozorova_alena_lab_1/volumes/gitea/gitea/indexers/issues.bleve/index_meta.json +++ /dev/null @@ -1 +0,0 @@ -{"storage":"boltdb","index_type":"scorch"} \ No newline at end of file diff --git a/dozorova_alena_lab_1/volumes/gitea/gitea/indexers/issues.bleve/rupture_meta.json b/dozorova_alena_lab_1/volumes/gitea/gitea/indexers/issues.bleve/rupture_meta.json deleted file mode 100644 index 205c7a4..0000000 --- a/dozorova_alena_lab_1/volumes/gitea/gitea/indexers/issues.bleve/rupture_meta.json +++ /dev/null @@ -1 +0,0 @@ -{"version":4} \ No newline at end of file diff --git a/dozorova_alena_lab_1/volumes/gitea/gitea/indexers/issues.bleve/store/root.bolt b/dozorova_alena_lab_1/volumes/gitea/gitea/indexers/issues.bleve/store/root.bolt deleted file mode 100644 index b21a7f9..0000000 Binary files a/dozorova_alena_lab_1/volumes/gitea/gitea/indexers/issues.bleve/store/root.bolt and /dev/null differ diff --git a/dozorova_alena_lab_1/volumes/gitea/gitea/jwt/private.pem b/dozorova_alena_lab_1/volumes/gitea/gitea/jwt/private.pem deleted file mode 100644 index e6051aa..0000000 --- a/dozorova_alena_lab_1/volumes/gitea/gitea/jwt/private.pem +++ /dev/null @@ -1,52 +0,0 @@ ------BEGIN PRIVATE KEY----- -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 -XXGE9FRK35yA3VEgydvvn1EVHrDSqa0= ------END PRIVATE KEY----- diff --git a/dozorova_alena_lab_1/volumes/gitea/gitea/queues/common/000001.log b/dozorova_alena_lab_1/volumes/gitea/gitea/queues/common/000001.log deleted file mode 100644 index ecacb55..0000000 Binary files a/dozorova_alena_lab_1/volumes/gitea/gitea/queues/common/000001.log and /dev/null differ diff --git a/dozorova_alena_lab_1/volumes/gitea/gitea/queues/common/CURRENT b/dozorova_alena_lab_1/volumes/gitea/gitea/queues/common/CURRENT deleted file mode 100644 index feda7d6..0000000 --- a/dozorova_alena_lab_1/volumes/gitea/gitea/queues/common/CURRENT +++ /dev/null @@ -1 +0,0 @@ -MANIFEST-000000 diff --git a/dozorova_alena_lab_1/volumes/gitea/gitea/queues/common/LOCK b/dozorova_alena_lab_1/volumes/gitea/gitea/queues/common/LOCK deleted file mode 100644 index e69de29..0000000 diff --git a/dozorova_alena_lab_1/volumes/gitea/gitea/queues/common/LOG b/dozorova_alena_lab_1/volumes/gitea/gitea/queues/common/LOG deleted file mode 100644 index 823c76c..0000000 --- a/dozorova_alena_lab_1/volumes/gitea/gitea/queues/common/LOG +++ /dev/null @@ -1,6 +0,0 @@ -=============== Sep 13, 2024 (UTC) =============== -18:55:55.362150 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed -18:55:55.371211 db@open opening -18:55:55.373794 version@stat F·[] S·0B[] Sc·[] -18:55:55.381350 db@janitor F·2 G·0 -18:55:55.381573 db@open done T·10.223409ms diff --git a/dozorova_alena_lab_1/volumes/gitea/gitea/queues/common/MANIFEST-000000 b/dozorova_alena_lab_1/volumes/gitea/gitea/queues/common/MANIFEST-000000 deleted file mode 100644 index 9d54f67..0000000 Binary files a/dozorova_alena_lab_1/volumes/gitea/gitea/queues/common/MANIFEST-000000 and /dev/null differ diff --git a/dozorova_alena_lab_1/volumes/gitea/ssh/ssh_host_ecdsa_key b/dozorova_alena_lab_1/volumes/gitea/ssh/ssh_host_ecdsa_key deleted file mode 100644 index 99497eb..0000000 --- a/dozorova_alena_lab_1/volumes/gitea/ssh/ssh_host_ecdsa_key +++ /dev/null @@ -1,9 +0,0 @@ ------BEGIN OPENSSH PRIVATE KEY----- -b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAaAAAABNlY2RzYS -1zaGEyLW5pc3RwMjU2AAAACG5pc3RwMjU2AAAAQQRQ+roZZ007kQa7Gww2JTmmVFw127Mu -q28jcvF0dwxqed4YB66jve6n53CCFIiwRUgdL7xTznuc7zK4ubvLzZv8AAAAsI/K32qPyt -9qAAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFD6uhlnTTuRBrsb -DDYlOaZUXDXbsy6rbyNy8XR3DGp53hgHrqO97qfncIIUiLBFSB0vvFPOe5zvMri5u8vNm/ -wAAAAhAKA0+nR1F1bBt7+aACPRfCKhwM97EucHO6IwHYNilS57AAAAEXJvb3RAMmRlMzY5 -MmIzZTlhAQIDBAUG ------END OPENSSH PRIVATE KEY----- diff --git a/dozorova_alena_lab_1/volumes/gitea/ssh/ssh_host_ecdsa_key.pub b/dozorova_alena_lab_1/volumes/gitea/ssh/ssh_host_ecdsa_key.pub deleted file mode 100644 index 835f284..0000000 --- a/dozorova_alena_lab_1/volumes/gitea/ssh/ssh_host_ecdsa_key.pub +++ /dev/null @@ -1 +0,0 @@ -ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFD6uhlnTTuRBrsbDDYlOaZUXDXbsy6rbyNy8XR3DGp53hgHrqO97qfncIIUiLBFSB0vvFPOe5zvMri5u8vNm/w= root@2de3692b3e9a diff --git a/dozorova_alena_lab_1/volumes/gitea/ssh/ssh_host_ed25519_key b/dozorova_alena_lab_1/volumes/gitea/ssh/ssh_host_ed25519_key deleted file mode 100644 index afcbc2e..0000000 --- a/dozorova_alena_lab_1/volumes/gitea/ssh/ssh_host_ed25519_key +++ /dev/null @@ -1,7 +0,0 @@ ------BEGIN OPENSSH PRIVATE KEY----- -b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW -QyNTUxOQAAACCucAFJv9K4Cdh00YUz8Jqpoi+fvsHi4bIA/RzpKhWTuAAAAJjklphJ5JaY -SQAAAAtzc2gtZWQyNTUxOQAAACCucAFJv9K4Cdh00YUz8Jqpoi+fvsHi4bIA/RzpKhWTuA -AAAEDQcq4vet1WGsAxpKoaeA0RT/1lPObea7lkRE35BWZHn65wAUm/0rgJ2HTRhTPwmqmi -L5++weLhsgD9HOkqFZO4AAAAEXJvb3RAMmRlMzY5MmIzZTlhAQIDBA== ------END OPENSSH PRIVATE KEY----- diff --git a/dozorova_alena_lab_1/volumes/gitea/ssh/ssh_host_ed25519_key.pub b/dozorova_alena_lab_1/volumes/gitea/ssh/ssh_host_ed25519_key.pub deleted file mode 100644 index 5ab2a4c..0000000 --- a/dozorova_alena_lab_1/volumes/gitea/ssh/ssh_host_ed25519_key.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK5wAUm/0rgJ2HTRhTPwmqmiL5++weLhsgD9HOkqFZO4 root@2de3692b3e9a diff --git a/dozorova_alena_lab_1/volumes/gitea/ssh/ssh_host_rsa_key b/dozorova_alena_lab_1/volumes/gitea/ssh/ssh_host_rsa_key deleted file mode 100644 index 4d14719..0000000 --- a/dozorova_alena_lab_1/volumes/gitea/ssh/ssh_host_rsa_key +++ /dev/null @@ -1,38 +0,0 @@ ------BEGIN OPENSSH PRIVATE KEY----- -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 ------END OPENSSH PRIVATE KEY----- diff --git a/dozorova_alena_lab_1/volumes/gitea/ssh/ssh_host_rsa_key.pub b/dozorova_alena_lab_1/volumes/gitea/ssh/ssh_host_rsa_key.pub deleted file mode 100644 index 698e1bd..0000000 --- a/dozorova_alena_lab_1/volumes/gitea/ssh/ssh_host_rsa_key.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDeYsKB62LerAZIBDCEwqEj+JR4UoCLQGXBLegjaip0zj/EuBP3RiQZQ+KPqwXdzN+2qHDNMhckOWsSSsHec5kIhD8w0iOuVims3bBcYK3CHy8Gw4MBHgV79Q+PRNPZh0YCRjyGBtLos821DStQkERYIDst8z5LAWHqCE0H70u6UEsx9mxt3UreEDEKyM8c50R6ZTYJF2yyRCGd/0FGlfl7ktg2ERFZ9wWiVZGRWXyjLakchwjt9nmufMi7Uga1F/4u7mPqwIcHK4WE4C3EcuMrfjjp2UJC7DS8wstZFkDN+K/k0WosOMmUIDZeNMeYgNJULivkm0xY8TvsoWDHI6kglP1kRD4PuVOhgKAF7I3Xsiw+TsOI6cMB6jiser3HfLCeEHHBWWXgDHZz8tiRnLWTkE0pYTKRfLx7bT7cQ84/NBzZUXBqaBzzKei6hSkn9Yy0dNzCQdXCQTaN+gFd4T+IHS0mOWunzSeMZdoeC40z6eXcDjKjzkykbX93WhbX4q8= root@2de3692b3e9a diff --git a/emelyanov_artem_lab_1/README.md b/emelyanov_artem_lab_1/README.md deleted file mode 100644 index 432b4fa..0000000 --- a/emelyanov_artem_lab_1/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# Docker Compose: PostgreSQL, RabbitMQ, Nginx - -## Описание проекта - -Этот проект разворачивает три сервиса с помощью Docker Compose: -1. **PostgreSQL** — реляционная база данных. -2. **RabbitMQ** — брокер сообщений с панелью управления. -3. **Nginx** — веб-сервер и реверс-прокси. - - -## Команды для запуска - -Чтобы развернуть и запустить проект, выполните следующие шаги: -1. Убедитесь, что у вас установлен Docker и Docker Compose. -2. Перейдите в директорию с файлом docker-compose.yml. -3. Запустите сервисы командой: docker-compose up --build - -## Сервисы и порты -1. **PostgreSQL:** - **Порт:** 5432 - **Доступ:** Локально, через любые приложения, подключающиеся к базе данных PostgreSQL. - - -2. **RabbitMQ:** - **Порт для приложений:** 5672 - **Панель управления RabbitMQ:** Доступна по адресу [http://localhost:15672/](http://localhost:15672/) (логин: `user`, пароль: `password`). - - -3. **Nginx:** - **Порт:** 80 - **Назначение:** Используется как реверс-прокси для распределения трафика. - -## Видео https://drive.google.com/file/d/1qzc_IFZBFkUVGJ97bkcsKpbwn8pw3Hay/view \ No newline at end of file diff --git a/emelyanov_artem_lab_1/docker-compose.yml b/emelyanov_artem_lab_1/docker-compose.yml deleted file mode 100644 index b77fda1..0000000 --- a/emelyanov_artem_lab_1/docker-compose.yml +++ /dev/null @@ -1,34 +0,0 @@ -version: '3.8' - -services: - # База данных PostgreSQL - postgres: - image: postgres:15 - container_name: postgres-db - environment: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: postgres - POSTGRES_DB: mydb - ports: - - "5432:5432" - - # RabbitMQ - rabbitmq: - image: rabbitmq:3-management - container_name: rabbitmq - environment: - RABBITMQ_DEFAULT_USER: user - RABBITMQ_DEFAULT_PASS: password - ports: - - "5672:5672" # для приложений - - "15672:15672" # для панели управления - - # Nginx для реверс-прокси (если нужно для других сервисов) - nginx: - image: nginx:latest - container_name: nginx - ports: - - "80:80" - depends_on: - - rabbitmq - diff --git a/kuzarin_maxim_lab_1/.env b/kuzarin_maxim_lab_1/.env deleted file mode 100644 index bd34c60..0000000 --- a/kuzarin_maxim_lab_1/.env +++ /dev/null @@ -1,14 +0,0 @@ -# Переменные для базы данных -POSTGRES_TAG=latest # Берём последнююю версию postgres. Пока это не принципиально -POSTGRES_DATA_DIR=./postgres-data -POSTGRES_PASSWORD=postgres_password - -# Переменные для Web gui для БД -DB_GUI_IMAGE=adminer # Самый легковесный Web gui для postgres(и не только) -DB_GUI_CONTEINER_PORT=8080 - -# Переменные для брокера сообщения RabbitMQ -RABBIT_TAG=3.10.7-management # Тут есть встроенный Web интерфейс -RABBIT_DATA_DIR=./rabbit-data -RABBIT_USERNAME=user -RABBIT_PASSWORD=password \ No newline at end of file diff --git a/kuzarin_maxim_lab_1/.gitignore b/kuzarin_maxim_lab_1/.gitignore deleted file mode 100644 index d301d51..0000000 --- a/kuzarin_maxim_lab_1/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -postgres-data/ -rabbit-data/ \ No newline at end of file diff --git a/kuzarin_maxim_lab_1/README.md b/kuzarin_maxim_lab_1/README.md deleted file mode 100644 index cb7b9fb..0000000 --- a/kuzarin_maxim_lab_1/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# Лабораторная работа 1 -Данная работа посвящена работе с docker compose и поднятию сервисов, необходимых для последующего выполнения работ. -## Описание -В качестве сервисов были выбраны: - - СУБД - Postgres - - Web интерфейс для БД Postgres - Adminer - - Брокер сообщений - RabbitMQ (+ Web интерфейс) -## Запуск -Для запуска лабораторной работы необходимо иметь запущенный движок Docker на устройстве. -Необходимо перейти в папку, где располагается данный файл. Далее открыть терминал и ввести команду: -``` -docker compose up -d -``` -В данном случае флаг `-d` не обязателен. Он лишь позволит оставить консоль интерактивной (запускает все контейнеры в фоновом режиме). -В случае, если в консоли отобразился подобный текст и появилась возможность вводить команды - сервисы успешно запущены. -``` -[+] Running 4/4 - ✔ Network kuzarin_maxim_lab_1_default Created 0.0s - ✔ Container kuzarin_maxim_lab_1-db-1 Started 0.7s - ✔ Container kuzarin_maxim_lab_1-rabbit-1 Started 0.7s - ✔ Container kuzarin_maxim_lab_1-db_web_gui-1 Started 0.7s -``` -## Описание compose файла -В docker-compose файле все уникальные строчки помечены комментариями. Они описывают их предназначения, и иногда обосновывают принятые решения. -Так же комментарии присутствуют в файле .env, где хранятся переменные среды, нужные для работы compose файла. -## Видео демонстрация -Был записан видеоролик, демонстрирующий процесс запуска и работы сервисов. Он расположен по [адресу](https://drive.google.com/file/d/1ouUc-3eYhaJIR0HhD4b_Lj73oxEqORpA/view?usp=sharing) diff --git a/kuzarin_maxim_lab_1/docker-compose.yml b/kuzarin_maxim_lab_1/docker-compose.yml deleted file mode 100644 index 6cc3992..0000000 --- a/kuzarin_maxim_lab_1/docker-compose.yml +++ /dev/null @@ -1,31 +0,0 @@ -services: - db: # База данных - image: postgres:${POSTGRES_TAG} # Берём тег образа из переменной среды - restart: always # Автоматический перезапуск контейнера, если он упал - ports: # проброс портов - - 5432:5432 # Так как на хосте нет postgres, порт по умолчанию можно использовать свободно - volumes: # Указываем проброс папок - - ${POSTGRES_DATA_DIR}:/var/lib/postgresql/data # Данные postgres хранятся в /var/lib/postgresql/data. - # А на хосте монтируем туда, куда указано в переменной - environment: # Указываем переменные среды - POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} # Пароль от учётки postgres берём из переменных среды - - db_web_gui: # Интерфейс для доступа к БД (на компе нет PgAdmin) - image: ${DB_GUI_IMAGE} # Их есть много разных, так что имя образа из env - restart: always - ports: - - 8080:${DB_GUI_CONTEINER_PORT} # Так как Web GUI разные, то и порт может быть разный. Берём из env - - rabbit: # Rabbit тоже понадобится в будущем - image: rabbitmq:${RABBIT_TAG} # Определяем тегом версию - restart: always - ports: - - 5672:5672 # Это порт доступа к брокеру (если буду разрабатывать на локале) - - 8081:15672 # А это порт для Web GUI. Для удобста на хосте это 8081, близко к БД - volumes: - - ${RABBIT_DATA_DIR}:/var/lib/rabbitmq # У Rabbit так же можно пробросить папку, чтобы не терять данные - environment: - RABBITMQ_DEFAULT_USER: ${RABBIT_USERNAME} # Логин для пользователя Rabbit Берём из env - RABBITMQ_DEFAULT_PASS: ${RABBIT_PASSWORD} # Пароль для пользователя Rabbit. Берём из env - - \ No newline at end of file diff --git a/tsukanova_irina_lab_1/.gitignore b/tsukanova_irina_lab_1/.gitignore deleted file mode 100644 index d859866..0000000 --- a/tsukanova_irina_lab_1/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*data/ \ No newline at end of file diff --git a/tsukanova_irina_lab_1/README.md b/tsukanova_irina_lab_1/README.md deleted file mode 100644 index 5cf3f78..0000000 --- a/tsukanova_irina_lab_1/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# Лабораторная работа №1 - Знакомство с docker и docker-compose - -## Выбранные сервисы: -1. WordPress - платформа для публикаций -2. MySQL - база данных для WordPress -3. MediaWiki - вики-движок - -## Запуск -Запуск производится посредством команды -```docker-compose up -d``` -В консоль выведется информация о запуске: -``` -[+] Running 4/4 -✔ Network tsukanova_irina_lab_1_app-network Created 0.1s -✔ Container mediawiki_app Started 0.9s -✔ Container mysql Started 0.8s -✔ Container wordpress_app Started 1.2s -``` - -## Содержимое docker-compose.yml -У всех сервисов указан ```image``` - это шаблон среды для контейнера. Образ служит "базовой" версией, на основе которой создаются контейнеры. -```container_name``` - можно указать, как будет называться контейнер. -```ports``` - для проброса порта, чтобы можно было иметь доступ к сервису с хоста. -```environment``` - для указания переменных окружения, которые передаются контейнеру при его запуске. -```volumes``` - для организации постоянного хранилища данных контейнеров Docker. -```networks``` - определяет, как контейнеры взаимодействуют между собой и с внешним миром через сети. - -## Скриншот работы -Docker Desktop: -![скриншот](screenshot.png) - -## [Видео](https://drive.google.com/file/d/170k0_yR2gbg3eCDSanJmGT8NXN3PkKSf/view?usp=sharing) diff --git a/tsukanova_irina_lab_1/docker-compose.yml b/tsukanova_irina_lab_1/docker-compose.yml deleted file mode 100644 index bc85215..0000000 --- a/tsukanova_irina_lab_1/docker-compose.yml +++ /dev/null @@ -1,52 +0,0 @@ -services: # определяет сервисы, которые будут запущены - - db: # сервис базы данных - image: mysql:8.0 # Образ MySQL - container_name: mysql # имя для контейнера - restart: always - volumes: - - ./db_data:/var/lib/postgres # Том для постоянного хранения данных - ports: - - "20001:3306" # порт для доступа к MySQL с хоста - environment: - MYSQL_DATABASE: lab1 # имя базы данных - MYSQL_USER: user # имя пользовтеля - MYSQL_PASSWORD: password # пароль пользователя - MYSQL_ROOT_PASSWORD: password # пароль для root - - networks: - - app-network - - - wordpress: - image: wordpress:latest # образ WordPress - container_name: wordpress_app - environment: - WORDPRESS_DB_HOST: db:3306 # имя хоста базы данных - WORDPRESS_DB_USER: user # имя пользователя БД - WORDPRESS_DB_PASSWORD: password # пароль пользователя - WORDPRESS_DB_NAME: lab1 # имя базы данных - ports: - - "20002:80" # порт для доступа к WordPress - volumes: - - ./wordpress_data:/var/www/html/wordpress_data # для хранения данных WordPress - depends_on: - - db # WordPress запустится после запуска базы данных - networks: - - app-network - - - mediawiki: - image: mediawiki:latest # образ MediaWiki - container_name: mediawiki_app - ports: - - "20003:80" # порт для доступа к MediaWiki - volumes: - - ./mediawiki_data:/var/www/html/mediawiki # для хранения данных MediaWiki - networks: - - app-network - - -networks: - app-network: - driver: bridge # общая сеть для контейнеров \ No newline at end of file diff --git a/tsukanova_irina_lab_1/screenshot.png b/tsukanova_irina_lab_1/screenshot.png deleted file mode 100644 index 22240bd..0000000 Binary files a/tsukanova_irina_lab_1/screenshot.png and /dev/null differ diff --git a/tukaeva_alfiya_lab_2/.gitignore b/tukaeva_alfiya_lab_2/.gitignore new file mode 100644 index 0000000..cc114d2 --- /dev/null +++ b/tukaeva_alfiya_lab_2/.gitignore @@ -0,0 +1,2 @@ +result/ +data/ \ No newline at end of file diff --git a/tukaeva_alfiya_lab_2/README.md b/tukaeva_alfiya_lab_2/README.md new file mode 100644 index 0000000..7465522 --- /dev/null +++ b/tukaeva_alfiya_lab_2/README.md @@ -0,0 +1,38 @@ +# Лабораторная работа №2 - Разработка простейшего распределённого приложения + +## Задание + +* Согласно вашему варианту разработать два приложения такие, что результат первого является исходными данными для второго. +* Изучить файлы сборки образов docker и разработать их для созданных приложений. +* Собрать файл docker-compose.yml для запуска приложений. Разобраться с монтированием каталогов из хост-системы. + +## Выбранные варианты: + + 1. Формирует файл /var/result/data.txt так, что каждая строка файла - количество символов в именах файлов из каталога /var/data. + + 2. Ищет набольшее число из файла /var/result/data.txt и сохраняет количество таких чисел из последовательности в /var/result/result.txt. + +## Запуск ЛР: + +Введем в терминале команду: +``` +docker compose up --build + +``` +После ввода данной команды происходит запуск файла generate_files.py. +Он формирует файлы в директории /var/result, которые нужны для работы приложений. + +![](lab_2.1.png "") + +Далее запускается первое приложение app_1.py. Оно считает количество символов в именах файлов, которые мы создали ранее, и записывает в файл /var/result/data.txt. + +![](lab_2.2.png "") + +После этого, запускается 2 приложение app_2.py. Оно Ищет набольшее число из файла /var/result/data.txt и сохраняет количество таких чисел из последовательности в файл /var/result/result.txt. + +![](lab_2.3.png "") + + +# Видео + +https://vk.com/video230744264_456239103?list=ln-8jtmxasFoP743qLzKB \ No newline at end of file diff --git a/tukaeva_alfiya_lab_2/app_1/Dockerfile b/tukaeva_alfiya_lab_2/app_1/Dockerfile new file mode 100644 index 0000000..bf59362 --- /dev/null +++ b/tukaeva_alfiya_lab_2/app_1/Dockerfile @@ -0,0 +1,8 @@ +FROM python:latest + + +WORKDIR /app + +COPY app_1.py /app/ + +CMD ["python", "app_1.py"] \ No newline at end of file diff --git a/tukaeva_alfiya_lab_2/app_1/app_1.py b/tukaeva_alfiya_lab_2/app_1/app_1.py new file mode 100644 index 0000000..712bd99 --- /dev/null +++ b/tukaeva_alfiya_lab_2/app_1/app_1.py @@ -0,0 +1,27 @@ +import os + + +def count_file_name_lengths(source_dir, result_file): + # Проверяем и создаем директорию для результатов + result_dir = os.path.dirname(result_file) + if not os.path.exists(result_dir): + os.makedirs(result_dir) + print(f"Created directory {result_dir}") + + # Поиск файлов в исходной директории + files = [f for f in os.listdir(source_dir) if os.path.isfile(os.path.join(source_dir, f))] + + # Если файлы не найдены, выводим сообщение + if not files: + print(f"No files found in {source_dir}") + return + + # Запись длин имен файлов в result_file + with open(result_file, 'w') as f_out: + for file in files: + f_out.write(f"{len(file)}\n") + + print(f"Wrote file name lengths to {result_file}") + +if __name__ == '__main__': + count_file_name_lengths('/var/data', '/var/result/data.txt') \ No newline at end of file diff --git a/tukaeva_alfiya_lab_2/app_2/Dockerfile b/tukaeva_alfiya_lab_2/app_2/Dockerfile new file mode 100644 index 0000000..df8405d --- /dev/null +++ b/tukaeva_alfiya_lab_2/app_2/Dockerfile @@ -0,0 +1,8 @@ +FROM python:latest + + +WORKDIR /app + +COPY app_2.py /app/ + +CMD ["python","app_2.py"] \ No newline at end of file diff --git a/tukaeva_alfiya_lab_2/app_2/app_2.py b/tukaeva_alfiya_lab_2/app_2/app_2.py new file mode 100644 index 0000000..9e5fbed --- /dev/null +++ b/tukaeva_alfiya_lab_2/app_2/app_2.py @@ -0,0 +1,34 @@ +import os +def count_max_numbers(source_file, result_file): + # Проверяем и создаем директорию для результатов + result_dir = os.path.dirname(result_file) + if not os.path.exists(result_dir): + os.makedirs(result_dir) + print(f"Created directory {result_dir}") + + # Чтение чисел из source_file + try: + with open(source_file, 'r') as f: + numbers = [int(line.strip()) for line in f if line.strip().isdigit()] + except FileNotFoundError: + print(f"File not found: {source_file}") + return + + if not numbers: + print(f"No valid numbers found in {source_file}") + return + + # Находим максимум + max_number = max(numbers) + max_count = numbers.count(max_number) + + # Записываем количество максимальных чисел в result_file + with open(result_file, 'w') as f_out: + f_out.write(f"{max_count}") + + print(f"Wrote count of max number {max_number} to {result_file}") + + +if __name__ == "__main__": + + count_max_numbers('/var/result/data.txt', '/var/result/result.txt') diff --git a/tukaeva_alfiya_lab_2/docker-compose.yml b/tukaeva_alfiya_lab_2/docker-compose.yml new file mode 100644 index 0000000..3ce6200 --- /dev/null +++ b/tukaeva_alfiya_lab_2/docker-compose.yml @@ -0,0 +1,33 @@ + + +services: + generator: + build: ./generator + volumes: + - ./data:/var/data # Монтирование локальной папки data в /var/data в контейнере + entrypoint: ["sh", "-c", "if [ -z \"$(ls -A /var/data)\" ]; then python generate_files.py; else echo '/var/data is not empty'; fi"] # Запуск команды, проверяющей, пуста ли папка /var/data. Если пуста, запускается скрипт генерации данных. + + app_1: + build: ./app_1 + image: app_1 + container_name: app_1 + volumes: + - ./data:/var/data # Монтирование локальной папки data в /var/data + - ./result:/var/result # Монтирование локальной папки result в /var/result + depends_on: + - generator + + app_2: + build: ./app_2 + image: app_2 + depends_on: + - app_1 + container_name: app_2 + volumes: + - shared-result:/var/result + - ./data:/var/data # Монтирование локальной папки data в /var/data + - ./result:/var/result # Монтирование локальной папки result в /var/result + +volumes: + shared-result: + diff --git a/tukaeva_alfiya_lab_2/generator/Dockerfile b/tukaeva_alfiya_lab_2/generator/Dockerfile new file mode 100644 index 0000000..dec61e1 --- /dev/null +++ b/tukaeva_alfiya_lab_2/generator/Dockerfile @@ -0,0 +1,11 @@ + +FROM python:latest + +# задание рабочей директории внутри контейнера. +WORKDIR /app + +# перемещение файлов из хоста в контейнер. +COPY generate_files.py /app/ + +# команда, выполняющаяся при запуске контейнера. +CMD ["python", "generate_files.py"] \ No newline at end of file diff --git a/tukaeva_alfiya_lab_2/generator/generate_files.py b/tukaeva_alfiya_lab_2/generator/generate_files.py new file mode 100644 index 0000000..1ffdca2 --- /dev/null +++ b/tukaeva_alfiya_lab_2/generator/generate_files.py @@ -0,0 +1,35 @@ +import os +import random +import string + + +def generate_random_filename(length): + #Генерирует случайное имя файла с длиной length. + return ''.join(random.choices(string.ascii_lowercase + string.digits, k=length)) + '.txt' + + +def generate_data_files(directory, num_files, min_lines, max_lines): + + # Создание директории, если таковой не существует + if not os.path.exists(directory): + os.makedirs(directory) + + # Проверка, пустая ли директория + if os.listdir(directory): + print(f"{directory} is not empty, skipping file generation.") + return + + # Генерация файлов + for _ in range(num_files): + file_name = generate_random_filename(random.randint(5, 20)) # Длина имени файла от 5 до 20 + file_path = os.path.join(directory, file_name) + + # Создание пустого файла + open(file_path, 'w').close() # Открываем файл в режиме записи и сразу закрываем + + print(f"Generated file: {file_path}") + + +if __name__ == "__main__": + # Генерация случайных файлов данных в директории /var/data + generate_data_files('/var/data', num_files=random.randint(5, 15), min_lines=1, max_lines=50) diff --git a/tukaeva_alfiya_lab_2/lab_2.1.png b/tukaeva_alfiya_lab_2/lab_2.1.png new file mode 100644 index 0000000..afba2cc Binary files /dev/null and b/tukaeva_alfiya_lab_2/lab_2.1.png differ diff --git a/tukaeva_alfiya_lab_2/lab_2.2.png b/tukaeva_alfiya_lab_2/lab_2.2.png new file mode 100644 index 0000000..9c0ff84 Binary files /dev/null and b/tukaeva_alfiya_lab_2/lab_2.2.png differ diff --git a/tukaeva_alfiya_lab_2/lab_2.3.png b/tukaeva_alfiya_lab_2/lab_2.3.png new file mode 100644 index 0000000..e8a5cf4 Binary files /dev/null and b/tukaeva_alfiya_lab_2/lab_2.3.png differ diff --git a/vaksman_valerya_lab_1/.env b/vaksman_valerya_lab_1/.env deleted file mode 100644 index c03a118..0000000 --- a/vaksman_valerya_lab_1/.env +++ /dev/null @@ -1,4 +0,0 @@ -DB_HOST = db -DB_USER = wordpress -DB_PASSWORD = wordpress -DB_NAME = wordpress \ No newline at end of file diff --git a/vaksman_valerya_lab_1/.gitignote b/vaksman_valerya_lab_1/.gitignote deleted file mode 100644 index 27d0928..0000000 --- a/vaksman_valerya_lab_1/.gitignote +++ /dev/null @@ -1 +0,0 @@ -mediawiki_data/ \ No newline at end of file diff --git a/vaksman_valerya_lab_1/1.png b/vaksman_valerya_lab_1/1.png deleted file mode 100644 index 92bd93e..0000000 Binary files a/vaksman_valerya_lab_1/1.png and /dev/null differ diff --git a/vaksman_valerya_lab_1/README.md b/vaksman_valerya_lab_1/README.md deleted file mode 100644 index 04e98a9..0000000 --- a/vaksman_valerya_lab_1/README.md +++ /dev/null @@ -1,129 +0,0 @@ -# Лабораторная работа №1 - Знакомство с docker и docker-compose - -## Задание - -Разверните 3 сервиса на выбор в контейнерах docker с помощью docker-compose, учитывая следующие требования: - -* Несколько контейнеров. -* Хотя бы один volume. -* Хотя бы один порт, проброшенный на хост. -* Разворачивание системы должно пройти до конца. - -## Запуск - -Введение в терминале команды: -``` -docker-compose up -d -``` - -# Выбранные сервисы - - 1. ```db``` - самая новая версия БД MaraiDB - - 2. ```phpmyadmin``` - система управления базой данных - - 3. ```mediawiki``` - движок вики - - 4. ```wordpress``` - платформа для управления контентом - - -## Описание работы: - -Были развёрнуты следующие сервисы: - -### phpmyadmin - -``` -phpmyadmin: - depends_on: - - db - image: phpmyadmin - hostname: php_my_admin - container_name: php_my_admin - volumes: # см. конец файла - - php_my_admin_data:/var/www/html - ports: - - 8080:80 - restart: always - environment: - PMA_ARBITRARY: 1 - TZ: "Europe/Moscow" - PMA_HOST: ${DB_HOST} - PMA_USER : ${DB_USER} - PMA_PASSWORD : ${DB_PASSWORD} -``` - -Этот код представляет собой часть файла конфигурации ```Docker Compose```, который используется для управления многоконтейнерными приложениями в Docker. - -#### Объяснение работы кода: - -Эта строка отвечает за образ сброки: -``` -image: phpmyadmin -``` -Задание имени контейнера: -``` -container_name: php_my_admin -``` -Проброс портов: -``` -ports: - - 8080:80 -``` -Тома для хранения данных: -``` -volumes: - - .php_my_admin_data:/var/www/html - -``` -Переменные окружения для Drupal -``` -environment: - PMA_ARBITRARY: 1 - TZ: "Europe/Moscow" - PMA_HOST: ${DB_HOST} - PMA_USER : ${DB_USER} - PMA_PASSWORD : ${DB_PASSWORD} - -``` -Аналогично со другими сервисами: - -### mediawiki - -``` - image: mediawiki:latest # образ MediaWiki - container_name: mediawiki_app - volumes: # см. конец файла - - ./mediawiki_data:/var/www/html/mediawiki - ports: - - "8088:80" - restart: always -``` - -### Wordpress - -``` - depends_on: - - db - image: wordpress:latest - hostname: wp_app - container_name: wp_app - volumes: # см. конец файла - - wordpress_data:/var/www/html - ports: - - "8000:80" - restart: always - user: www-data - environment: # секция настроек для подключения wordpress к БД - TZ: "Europe/Moscow" - WORDPRESS_DB_HOST: ${DB_HOST} - WORDPRESS_DB_USER: ${DB_USER} - WORDPRESS_DB_PASSWORD: ${DB_PASSWORD} - WORDPRESS_DB_NAME: ${DB_NAME} -``` -# Скриншот работы -Панель консоли -![](1.png "") - -# ВК -https://vk.com/video256017065_456239870?list=ln-qWUdZke5z53x940ZHv \ No newline at end of file diff --git a/vaksman_valerya_lab_1/docker-compose.yaml b/vaksman_valerya_lab_1/docker-compose.yaml deleted file mode 100644 index 94bf42e..0000000 --- a/vaksman_valerya_lab_1/docker-compose.yaml +++ /dev/null @@ -1,66 +0,0 @@ -services: - db: # контейнер базы данных - image: mariadb:latest # самая свежая версия MySql - hostname: wp_database # хост контейнера внутри стистемы докер - container_name: wp_database # имя контейнера с системе docker - volumes: # см. конец файла - - db_data:/var/lib/mysql - restart: always - environment: # cекция настроек для БД - TZ: "Europe/Moscow" - MYSQL_ROOT_PASSWORD: somewordpress - MYSQL_DATABASE: ${DB_NAME} - MYSQL_USER: ${DB_USER} - MYSQL_PASSWORD: ${DB_PASSWORD} - - phpmyadmin: # СУБД для БД - depends_on: # запускаем после MySql - - db - image: phpmyadmin # скачиваем уже существующие образы для построения и запуска наших контейнеров - hostname: php_my_admin - container_name: php_my_admin - volumes: # см. конец файла - - php_my_admin_data:/var/www/html - ports: - - 8080:80 - restart: always - environment: - PMA_ARBITRARY: 1 # разрешение на подключения к любому серверу - TZ: "Europe/Moscow" - PMA_HOST: ${DB_HOST} # сразу заходим под нашими паролями и учёткой - PMA_USER : ${DB_USER} - PMA_PASSWORD : ${DB_PASSWORD} - - wordpress: # контейнер wordpress - depends_on: # запускаем после MySql - - db - image: wordpress:latest # самая свежая версия MySql - hostname: wp_app - container_name: wp_app - volumes: # см. конец файла - - wordpress_data:/var/www/html - ports: - - "8000:80" - restart: always - user: www-data - environment: # секция настроек для подключения wordpress к БД - TZ: "Europe/Moscow" - WORDPRESS_DB_HOST: ${DB_HOST} - WORDPRESS_DB_USER: ${DB_USER} - WORDPRESS_DB_PASSWORD: ${DB_PASSWORD} - WORDPRESS_DB_NAME: ${DB_NAME} - - mediawiki: # контейнер mediawiki - image: mediawiki:latest # образ MediaWiki - container_name: mediawiki_app - volumes: # см. конец файла - - ./mediawiki_data:/var/www/html/mediawiki - ports: - - "8088:80" - restart: always - -volumes: # для локального хранения сессионных данных из работы контейнеров - db_data: {} - wordpress_data: {} - php_my_admin_data: {} - mediawiki: {} \ No newline at end of file