From 19522cd6abc8c25678371676fb709ecb295e6a69 Mon Sep 17 00:00:00 2001 From: Zara28 Date: Mon, 23 Sep 2024 17:12:01 +0400 Subject: [PATCH] =?UTF-8?q?=D1=87=D0=B8=D1=81=D1=82=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- borschevskaya_anna_lab_1/README.md | 61 --- borschevskaya_anna_lab_1/docker-compose.yml | 34 -- borschevskaya_anna_lab_1/init-database.sh | 15 - dozorova_alena_lab_1/docker-compose.yml | 33 -- dozorova_alena_lab_1/readme.md | 35 -- .../volumes/gitea/git/.ssh/authorized_keys | 0 .../volumes/gitea/git/.ssh/environment | 1 - .../volumes/gitea/gitea/conf/app.ini | 98 ---- .../volumes/gitea/gitea/home/.gitconfig | 22 - .../indexers/issues.bleve/index_meta.json | 1 - .../indexers/issues.bleve/rupture_meta.json | 1 - .../indexers/issues.bleve/store/root.bolt | Bin 65536 -> 0 bytes .../volumes/gitea/gitea/jwt/private.pem | 52 -- .../gitea/gitea/queues/common/000001.log | Bin 1377 -> 0 bytes .../volumes/gitea/gitea/queues/common/CURRENT | 1 - .../volumes/gitea/gitea/queues/common/LOCK | 0 .../volumes/gitea/gitea/queues/common/LOG | 6 - .../gitea/gitea/queues/common/MANIFEST-000000 | Bin 54 -> 0 bytes .../volumes/gitea/ssh/ssh_host_ecdsa_key | 9 - .../volumes/gitea/ssh/ssh_host_ecdsa_key.pub | 1 - .../volumes/gitea/ssh/ssh_host_ed25519_key | 7 - .../gitea/ssh/ssh_host_ed25519_key.pub | 1 - .../volumes/gitea/ssh/ssh_host_rsa_key | 38 -- .../volumes/gitea/ssh/ssh_host_rsa_key.pub | 1 - emelyanov_artem_lab_1/README.md | 33 -- emelyanov_artem_lab_1/docker-compose.yml | 34 -- kuzarin_maxim_lab_1/.env | 14 - kuzarin_maxim_lab_1/.gitignore | 2 - kuzarin_maxim_lab_1/README.md | 27 - kuzarin_maxim_lab_1/docker-compose.yml | 31 -- kuzarin_maxim_lab_2/.dockerignore | 30 -- kuzarin_maxim_lab_2/.gitignore | 490 ------------------ kuzarin_maxim_lab_2/DAaS_FileConnections.sln | 37 -- .../DAaS_FileConnections.csproj | 14 - .../DAaS_FileConnections/Program.cs | 29 -- .../FirstApplication/Dockerfile | 35 -- .../FirstApplication/FirstApplication.csproj | 15 - .../FirstApplication/Program.cs | 17 - .../Properties/launchSettings.json | 10 - kuzarin_maxim_lab_2/README.md | 25 - .../SecondApplication/Dockerfile | 20 - .../SecondApplication/Program.cs | 31 -- .../Properties/launchSettings.json | 10 - .../SecondApplication.csproj | 15 - kuzarin_maxim_lab_2/docker-compose.yml | 22 - tsukanova_irina_lab_1/.gitignore | 1 - tsukanova_irina_lab_1/README.md | 32 -- tsukanova_irina_lab_1/docker-compose.yml | 52 -- tsukanova_irina_lab_1/screenshot.png | Bin 116544 -> 0 bytes vaksman_valerya_lab_1/.env | 4 - vaksman_valerya_lab_1/.gitignote | 1 - vaksman_valerya_lab_1/1.png | Bin 77164 -> 0 bytes vaksman_valerya_lab_1/README.md | 129 ----- vaksman_valerya_lab_1/docker-compose.yaml | 66 --- 54 files changed, 1643 deletions(-) delete mode 100644 borschevskaya_anna_lab_1/README.md delete mode 100644 borschevskaya_anna_lab_1/docker-compose.yml delete mode 100644 borschevskaya_anna_lab_1/init-database.sh delete mode 100644 dozorova_alena_lab_1/docker-compose.yml delete mode 100644 dozorova_alena_lab_1/readme.md delete mode 100644 dozorova_alena_lab_1/volumes/gitea/git/.ssh/authorized_keys delete mode 100644 dozorova_alena_lab_1/volumes/gitea/git/.ssh/environment delete mode 100644 dozorova_alena_lab_1/volumes/gitea/gitea/conf/app.ini delete mode 100644 dozorova_alena_lab_1/volumes/gitea/gitea/home/.gitconfig delete mode 100644 dozorova_alena_lab_1/volumes/gitea/gitea/indexers/issues.bleve/index_meta.json delete mode 100644 dozorova_alena_lab_1/volumes/gitea/gitea/indexers/issues.bleve/rupture_meta.json delete mode 100644 dozorova_alena_lab_1/volumes/gitea/gitea/indexers/issues.bleve/store/root.bolt delete mode 100644 dozorova_alena_lab_1/volumes/gitea/gitea/jwt/private.pem delete mode 100644 dozorova_alena_lab_1/volumes/gitea/gitea/queues/common/000001.log delete mode 100644 dozorova_alena_lab_1/volumes/gitea/gitea/queues/common/CURRENT delete mode 100644 dozorova_alena_lab_1/volumes/gitea/gitea/queues/common/LOCK delete mode 100644 dozorova_alena_lab_1/volumes/gitea/gitea/queues/common/LOG delete mode 100644 dozorova_alena_lab_1/volumes/gitea/gitea/queues/common/MANIFEST-000000 delete mode 100644 dozorova_alena_lab_1/volumes/gitea/ssh/ssh_host_ecdsa_key delete mode 100644 dozorova_alena_lab_1/volumes/gitea/ssh/ssh_host_ecdsa_key.pub delete mode 100644 dozorova_alena_lab_1/volumes/gitea/ssh/ssh_host_ed25519_key delete mode 100644 dozorova_alena_lab_1/volumes/gitea/ssh/ssh_host_ed25519_key.pub delete mode 100644 dozorova_alena_lab_1/volumes/gitea/ssh/ssh_host_rsa_key delete mode 100644 dozorova_alena_lab_1/volumes/gitea/ssh/ssh_host_rsa_key.pub delete mode 100644 emelyanov_artem_lab_1/README.md delete mode 100644 emelyanov_artem_lab_1/docker-compose.yml delete mode 100644 kuzarin_maxim_lab_1/.env delete mode 100644 kuzarin_maxim_lab_1/.gitignore delete mode 100644 kuzarin_maxim_lab_1/README.md delete mode 100644 kuzarin_maxim_lab_1/docker-compose.yml delete mode 100644 kuzarin_maxim_lab_2/.dockerignore delete mode 100644 kuzarin_maxim_lab_2/.gitignore delete mode 100644 kuzarin_maxim_lab_2/DAaS_FileConnections.sln delete mode 100644 kuzarin_maxim_lab_2/DAaS_FileConnections/DAaS_FileConnections.csproj delete mode 100644 kuzarin_maxim_lab_2/DAaS_FileConnections/Program.cs delete mode 100644 kuzarin_maxim_lab_2/FirstApplication/Dockerfile delete mode 100644 kuzarin_maxim_lab_2/FirstApplication/FirstApplication.csproj delete mode 100644 kuzarin_maxim_lab_2/FirstApplication/Program.cs delete mode 100644 kuzarin_maxim_lab_2/FirstApplication/Properties/launchSettings.json delete mode 100644 kuzarin_maxim_lab_2/README.md delete mode 100644 kuzarin_maxim_lab_2/SecondApplication/Dockerfile delete mode 100644 kuzarin_maxim_lab_2/SecondApplication/Program.cs delete mode 100644 kuzarin_maxim_lab_2/SecondApplication/Properties/launchSettings.json delete mode 100644 kuzarin_maxim_lab_2/SecondApplication/SecondApplication.csproj delete mode 100644 kuzarin_maxim_lab_2/docker-compose.yml delete mode 100644 tsukanova_irina_lab_1/.gitignore delete mode 100644 tsukanova_irina_lab_1/README.md delete mode 100644 tsukanova_irina_lab_1/docker-compose.yml delete mode 100644 tsukanova_irina_lab_1/screenshot.png delete mode 100644 vaksman_valerya_lab_1/.env delete mode 100644 vaksman_valerya_lab_1/.gitignote delete mode 100644 vaksman_valerya_lab_1/1.png delete mode 100644 vaksman_valerya_lab_1/README.md delete mode 100644 vaksman_valerya_lab_1/docker-compose.yaml 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 b21a7f9cf59d4bc10199b9333724f4f3d3a7dbb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65536 zcmeI*&u-jA9Ki7<{3!^e_RIkVAK;Qg5=cw;&;uX=5-LJOLL#cHS$noj8GDR9PMcKw z0PtKKcm__qK*gCGzwvsuyW5SFR@o)3zAHsz&(3&eKDKAZ-t}fMn7&@?!^eNU^LQ&P zUzEmPYX20-OA9iVF`QtnPZvXwy_Mb5wAp!^>fB*srAbQYtX^?pnr^I!e?|9OP3wW1{U)9x}DE9 zU9DDrrVS*mHwy;AGcNI7#wuFN_%+U8QlqiJQ6VN$lmNY{x}CDbAr_Ssx^tZW-f z2oaOJQrFBCg)V)XxwiBhDXO!a8J@F2UO)89%`s(W+gzt!*F}1)Gw8ES8nZ%sr9kZ57JuyD&tw`R@Z(uO-tNFNliOyvf9W9 zzW!EuJ-S z0}+dPrGmjZR$*4VtQDt1sx+CzIXxi)2)yJ1ulMbX*Z<*p{%!dSVR$AWgzxv^?-H7L z!$6k1R}mMM!>vL5Zoy!%D{qEh41BLo^p%8RLovl|Sq{H67-|#x`5(M0s{P&lPp|LZ zy1w_x;ofJ%gB!!$-H&b^9Nf5hbANyDr_igOs_IyJVHp42(|)Fc}3a(CwTvKN#PViL{9Xf&M!EyON_2qGzlxxMjrb7ps)+0BoQ zC_+FBTO0qdwg?F6w6hT_BM2$1LR7G@u?PsxB^UU{%(~4o@ILeKz5B87XY2e0AOv=w z#+w`u!q~s*yDav@z>!=m_%5fn6P|GAR=C*S(hR?P_woA#kiFv$d*VN==hwXUCJR6M zDyY7|1~kwE#z>#w8$%77}lxesy&mWBj5623`ibRJw{5C&8-f-Jqx6OF*_18 zVzF8X*W+&8s2ly(ms6!5!(2Iq(}bO`C&$!cbYsv`AWPzq&T~;SE&9(JgU?hYMGTcp zkfz#R%}fmdu`rd1nXDUD@6Pb=^^-tKIGaUT?cz(DU+<~mdvLhS+{S-SQo&huna+h3 SgT=B(rq#yT80<|0HRWFwJSzJD 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 9d54f6733b1364dc8d53dd15ca59a6ec36a1c29d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54 zcmdmC5aOo9z{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&O?~%*ev9Y~pbaHU>r} JMrI}!1^~s!4paaD 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/kuzarin_maxim_lab_2/.dockerignore b/kuzarin_maxim_lab_2/.dockerignore deleted file mode 100644 index fe1152b..0000000 --- a/kuzarin_maxim_lab_2/.dockerignore +++ /dev/null @@ -1,30 +0,0 @@ -**/.classpath -**/.dockerignore -**/.env -**/.git -**/.gitignore -**/.project -**/.settings -**/.toolstarget -**/.vs -**/.vscode -**/*.*proj.user -**/*.dbmdl -**/*.jfm -**/azds.yaml -**/bin -**/charts -**/docker-compose* -**/Dockerfile* -**/node_modules -**/npm-debug.log -**/obj -**/secrets.dev.yaml -**/values.dev.yaml -LICENSE -README.md -!**/.gitignore -!.git/HEAD -!.git/config -!.git/packed-refs -!.git/refs/heads/** \ No newline at end of file diff --git a/kuzarin_maxim_lab_2/.gitignore b/kuzarin_maxim_lab_2/.gitignore deleted file mode 100644 index 53771b6..0000000 --- a/kuzarin_maxim_lab_2/.gitignore +++ /dev/null @@ -1,490 +0,0 @@ -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. -## -## Get latest from `dotnet new gitignore` - -# dotenv files -.env - -# User-specific files -*.rsuser -*.suo -*.user -*.userosscache -*.sln.docstates - -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Mono auto generated files -mono_crash.* - -# Build results -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -[Ww][Ii][Nn]32/ -[Aa][Rr][Mm]/ -[Aa][Rr][Mm]64/ -bld/ -[Bb]in/ -[Oo]bj/ -[Ll]og/ -[Ll]ogs/ - -# Visual Studio 2015/2017 cache/options directory -.vs/ -# Uncomment if you have tasks that create the project's static files in wwwroot -#wwwroot/ - -# Visual Studio 2017 auto generated files -Generated\ Files/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUnit -*.VisualState.xml -TestResult.xml -nunit-*.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -# Benchmark Results -BenchmarkDotNet.Artifacts/ - -# .NET -project.lock.json -project.fragment.lock.json -artifacts/ - -# Tye -.tye/ - -# ASP.NET Scaffolding -ScaffoldingReadMe.txt - -# StyleCop -StyleCopReport.xml - -# Files built by Visual Studio -*_i.c -*_p.c -*_h.h -*.ilk -*.meta -*.obj -*.iobj -*.pch -*.pdb -*.ipdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*_wpftmp.csproj -*.log -*.tlog -*.vspscc -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opendb -*.opensdf -*.sdf -*.cachefile -*.VC.db -*.VC.VC.opendb - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# Visual Studio Trace Files -*.e2e - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# AxoCover is a Code Coverage Tool -.axoCover/* -!.axoCover/settings.json - -# Coverlet is a free, cross platform Code Coverage Tool -coverage*.json -coverage*.xml -coverage*.info - -# Visual Studio code coverage results -*.coverage -*.coveragexml - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml -# Note: Comment the next line if you want to checkin your web deploy settings, -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - -# Microsoft Azure Web App publish settings. Comment the next line if you want to -# checkin your Azure Web App publish settings, but sensitive information contained -# in these scripts will be unencrypted -PublishScripts/ - -# NuGet Packages -*.nupkg -# NuGet Symbol Packages -*.snupkg -# The packages folder can be ignored because of Package Restore -**/[Pp]ackages/* -# except build/, which is used as an MSBuild target. -!**/[Pp]ackages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/[Pp]ackages/repositories.config -# NuGet v3's project.json files produces more ignorable files -*.nuget.props -*.nuget.targets - -# Microsoft Azure Build Output -csx/ -*.build.csdef - -# Microsoft Azure Emulator -ecf/ -rcf/ - -# Windows Store app package directories and files -AppPackages/ -BundleArtifacts/ -Package.StoreAssociation.xml -_pkginfo.txt -*.appx -*.appxbundle -*.appxupload - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!?*.[Cc]ache/ - -# Others -ClientBin/ -~$* -*~ -*.dbmdl -*.dbproj.schemaview -*.jfm -*.pfx -*.publishsettings -orleans.codegen.cs - -# Including strong name files can present a security risk -# (https://github.com/github/gitignore/pull/2483#issue-259490424) -#*.snk - -# Since there are multiple workflows, uncomment next line to ignore bower_components -# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) -#bower_components/ - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm -ServiceFabricBackup/ -*.rptproj.bak - -# SQL Server files -*.mdf -*.ldf -*.ndf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings -*.rptproj.rsuser -*- [Bb]ackup.rdl -*- [Bb]ackup ([0-9]).rdl -*- [Bb]ackup ([0-9][0-9]).rdl - -# Microsoft Fakes -FakesAssemblies/ - -# GhostDoc plugin setting file -*.GhostDoc.xml - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat -node_modules/ - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) -*.vbw - -# Visual Studio 6 auto-generated project file (contains which files were open etc.) -*.vbp - -# Visual Studio 6 workspace and project file (working project files containing files to include in project) -*.dsw -*.dsp - -# Visual Studio 6 technical files -*.ncb -*.aps - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - -# Paket dependency manager -.paket/paket.exe -paket-files/ - -# FAKE - F# Make -.fake/ - -# CodeRush personal settings -.cr/personal - -# Python Tools for Visual Studio (PTVS) -__pycache__/ -*.pyc - -# Cake - Uncomment if you are using it -# tools/** -# !tools/packages.config - -# Tabs Studio -*.tss - -# Telerik's JustMock configuration file -*.jmconfig - -# BizTalk build output -*.btp.cs -*.btm.cs -*.odx.cs -*.xsd.cs - -# OpenCover UI analysis results -OpenCover/ - -# Azure Stream Analytics local run output -ASALocalRun/ - -# MSBuild Binary and Structured Log -*.binlog - -# NVidia Nsight GPU debugger configuration file -*.nvuser - -# MFractors (Xamarin productivity tool) working folder -.mfractor/ - -# Local History for Visual Studio -.localhistory/ - -# Visual Studio History (VSHistory) files -.vshistory/ - -# BeatPulse healthcheck temp database -healthchecksdb - -# Backup folder for Package Reference Convert tool in Visual Studio 2017 -MigrationBackup/ - -# Ionide (cross platform F# VS Code tools) working folder -.ionide/ - -# Fody - auto-generated XML schema -FodyWeavers.xsd - -# VS Code files for those working on multiple tools -.vscode/* -!.vscode/settings.json -!.vscode/tasks.json -!.vscode/launch.json -!.vscode/extensions.json -*.code-workspace - -# Local History for Visual Studio Code -.history/ - -# Windows Installer files from build outputs -*.cab -*.msi -*.msix -*.msm -*.msp - -# JetBrains Rider -*.sln.iml -.idea - -## -## Visual studio for Mac -## - - -# globs -Makefile.in -*.userprefs -*.usertasks -config.make -config.status -aclocal.m4 -install-sh -autom4te.cache/ -*.tar.gz -tarballs/ -test-results/ - -# Mac bundle stuff -*.dmg -*.app - -# content below from: https://github.com/github/gitignore/blob/master/Global/macOS.gitignore -# General -.DS_Store -.AppleDouble -.LSOverride - -# Icon must end with two \r -Icon - - -# Thumbnails -._* - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns -.com.apple.timemachine.donotpresent - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk - -# content below from: https://github.com/github/gitignore/blob/master/Global/Windows.gitignore -# Windows thumbnail cache files -Thumbs.db -ehthumbs.db -ehthumbs_vista.db - -# Dump file -*.stackdump - -# Folder config file -[Dd]esktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Windows Installer files -*.cab -*.msi -*.msix -*.msm -*.msp - -# Windows shortcuts -*.lnk - -# Vim temporary swap files -*.swp - -# Delete volumes -/volumes - -# Delete .vs folder -/.vs/* diff --git a/kuzarin_maxim_lab_2/DAaS_FileConnections.sln b/kuzarin_maxim_lab_2/DAaS_FileConnections.sln deleted file mode 100644 index a14d564..0000000 --- a/kuzarin_maxim_lab_2/DAaS_FileConnections.sln +++ /dev/null @@ -1,37 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.10.34916.146 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DAaS_FileConnections", "DAaS_FileConnections\DAaS_FileConnections.csproj", "{23B07B06-0AB4-42F8-9753-264639E1D38B}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FirstApplication", "FirstApplication\FirstApplication.csproj", "{FBC01B2E-C887-42D1-A899-3C4781EF67E9}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SecondApplication", "SecondApplication\SecondApplication.csproj", "{5888DB56-82F2-467D-8F6B-AB94CC4A33B5}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {23B07B06-0AB4-42F8-9753-264639E1D38B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {23B07B06-0AB4-42F8-9753-264639E1D38B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {23B07B06-0AB4-42F8-9753-264639E1D38B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {23B07B06-0AB4-42F8-9753-264639E1D38B}.Release|Any CPU.Build.0 = Release|Any CPU - {FBC01B2E-C887-42D1-A899-3C4781EF67E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FBC01B2E-C887-42D1-A899-3C4781EF67E9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FBC01B2E-C887-42D1-A899-3C4781EF67E9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FBC01B2E-C887-42D1-A899-3C4781EF67E9}.Release|Any CPU.Build.0 = Release|Any CPU - {5888DB56-82F2-467D-8F6B-AB94CC4A33B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5888DB56-82F2-467D-8F6B-AB94CC4A33B5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5888DB56-82F2-467D-8F6B-AB94CC4A33B5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5888DB56-82F2-467D-8F6B-AB94CC4A33B5}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {E290B7D1-0F4E-406E-ADF3-8F543C0FA96E} - EndGlobalSection -EndGlobal diff --git a/kuzarin_maxim_lab_2/DAaS_FileConnections/DAaS_FileConnections.csproj b/kuzarin_maxim_lab_2/DAaS_FileConnections/DAaS_FileConnections.csproj deleted file mode 100644 index c54449d..0000000 --- a/kuzarin_maxim_lab_2/DAaS_FileConnections/DAaS_FileConnections.csproj +++ /dev/null @@ -1,14 +0,0 @@ - - - - Exe - net8.0 - enable - enable - - - - - - - diff --git a/kuzarin_maxim_lab_2/DAaS_FileConnections/Program.cs b/kuzarin_maxim_lab_2/DAaS_FileConnections/Program.cs deleted file mode 100644 index 0c6ae7d..0000000 --- a/kuzarin_maxim_lab_2/DAaS_FileConnections/Program.cs +++ /dev/null @@ -1,29 +0,0 @@ - -using PIHelperSh.RandomEx.Extentions; - -string inputPath = Environment.GetEnvironmentVariable("INPUT_PATH") ?? ".\\input1"; -string outputPath = Environment.GetEnvironmentVariable("OUTPUT_PATH") ?? ".\\output1"; - -if(!Directory.Exists(inputPath)) - Directory.CreateDirectory(inputPath); - -if(!Directory.Exists(outputPath)) - Directory.CreateDirectory(outputPath); - -var rnd = new Random(); - -for (int i = 0; i < rnd.Next(1000); i++) -{ - using var writer = new StreamWriter(Path.Combine(inputPath, $"{rnd.NextString(10)}.txt"), false); - - for (int j = 0; j < rnd.Next(1000); j++) - - { - writer.WriteLine(rnd.Next()); - } - writer.Close(); -} - - - - diff --git a/kuzarin_maxim_lab_2/FirstApplication/Dockerfile b/kuzarin_maxim_lab_2/FirstApplication/Dockerfile deleted file mode 100644 index 1fc32ba..0000000 --- a/kuzarin_maxim_lab_2/FirstApplication/Dockerfile +++ /dev/null @@ -1,35 +0,0 @@ -# Это базовый образ для сборки. -FROM mcr.microsoft.com/dotnet/runtime:8.0 AS base -# Указываем рабочий каталог для следующих комманд -WORKDIR /app - -# Проект нужно сначала собрать, поэтому берём sdk -FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build -# Это пременная. Будем собирать в режиме Relece. -ARG BUILD_CONFIGURATION=Release -WORKDIR /src -# Копируем из папки хоста в контейнер -COPY ["FirstApplication.csproj", "FirstApplication/"] -# Выполняем комманду для загрузки всех нужных зависимостей -RUN dotnet restore "FirstApplication/FirstApplication.csproj" -# Назначаем новую базовую папку -WORKDIR "/src/FirstApplication" -# Копируем всё в папку для сборки -COPY . . -# Выполняем сборку проекта -RUN dotnet build "FirstApplication.csproj" -c $BUILD_CONFIGURATION -o /app/build - -# В этот этап попадает всё, что было в publish -FROM build AS publish -ARG BUILD_CONFIGURATION=Release -# Публикуем всё в папку /app/publish -RUN dotnet publish "FirstApplication.csproj" -c $BUILD_CONFIGURATION -o /app/publish --self-contained false --no-restore - -# Берём тот образ, что определили в первой строке -FROM base AS final -# Указываем рабочую директорию -WORKDIR /app -# Из опубликованного блока берём то, что опубликовано и закидывае в /app -COPY --from=publish /app/publish . -# Указываем комманду запуска приложения (когда контейнер запустится, то начнёт с этого) -ENTRYPOINT ["dotnet", "FirstApplication.dll"] \ No newline at end of file diff --git a/kuzarin_maxim_lab_2/FirstApplication/FirstApplication.csproj b/kuzarin_maxim_lab_2/FirstApplication/FirstApplication.csproj deleted file mode 100644 index df30bfa..0000000 --- a/kuzarin_maxim_lab_2/FirstApplication/FirstApplication.csproj +++ /dev/null @@ -1,15 +0,0 @@ - - - - Exe - net8.0 - enable - enable - Linux - - - - - - - diff --git a/kuzarin_maxim_lab_2/FirstApplication/Program.cs b/kuzarin_maxim_lab_2/FirstApplication/Program.cs deleted file mode 100644 index 25ce634..0000000 --- a/kuzarin_maxim_lab_2/FirstApplication/Program.cs +++ /dev/null @@ -1,17 +0,0 @@ -Console.WriteLine("Запущен первый сервис"); -string inputPath = Environment.GetEnvironmentVariable("INPUT_PATH") ?? "./input1"; -string outputPath = Environment.GetEnvironmentVariable("OUTPUT_PATH") ?? "./output1"; - -if (!Directory.Exists(inputPath)) - Directory.CreateDirectory(inputPath); - -if (!Directory.Exists(outputPath)) - Directory.CreateDirectory(outputPath); - -var file = new DirectoryInfo(inputPath).EnumerateFiles().Aggregate((x, y) => x.Length > y.Length ? x : y); - -var outputFilePath = Path.Combine(outputPath, "data.txt"); - -if(File.Exists(outputFilePath)) - File.Delete(outputFilePath); -File.Move(file.FullName, Path.Combine(outputPath, "data.txt")); diff --git a/kuzarin_maxim_lab_2/FirstApplication/Properties/launchSettings.json b/kuzarin_maxim_lab_2/FirstApplication/Properties/launchSettings.json deleted file mode 100644 index b93d72a..0000000 --- a/kuzarin_maxim_lab_2/FirstApplication/Properties/launchSettings.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "profiles": { - "FirstApplication": { - "commandName": "Project" - }, - "Container (Dockerfile)": { - "commandName": "Docker" - } - } -} \ No newline at end of file diff --git a/kuzarin_maxim_lab_2/README.md b/kuzarin_maxim_lab_2/README.md deleted file mode 100644 index 911bbb2..0000000 --- a/kuzarin_maxim_lab_2/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# Лабораторная работа 2 -Данная работа посвящена теме создания контейнеров из исходного кода посредства dockerfile, а так же взаимодействию сервисов через общие папки -## Описание -Был варана следующая комбинация вариантов: - - Первое приложение - 0-ой - - Второе приложение - 1-ый -В результате, после запуска система изучит папку ./volumes/input, найдёт самый большой файл, а затем найдёт в нём самое большое число, выведя в директорию ./volumes/output файл с его квадратом. -Буфер же, по сути не имеет физического отображения на папку хоста. -## Запуск -Для запуска лабораторной работы необходимо иметь запущенный движок Docker на устройстве. -Необходимо перейти в папку, где располагается данный файл. Далее открыть терминал и ввести команду: -``` -docker compose up --build -``` -В данном случае флаг `--build` заставит систему в любом случае собрать образы из исходников (даже если они уже есть). -В результате, после сборки оба сервиса запустятся и выведут в консоль логи примерно следующего содержания: -## Описание dockerfile файла -Подробное описание дано в виде комментариев в самом файле первого сервиса. Так как для разработки использовался .net 8.0, команд довольно много. При этом, так как второй сервис написан на той же платформе, особенных отличий двух docekrfile-ов нет(кроме пути -## Описание compose файла -Благодаря директиве `depends_on` в compose файле второй сервис будет ждать, пока не будет поднят первый сервис, и только потом начнёт подниматься. -Директива `build` позволяет использовать в compose не уже готовый образ, а тот, что будет собран непосредственно в момент запуска(если он уже существует и нет флага силовой сборки, будет использоваться существующий образ) -Область volumes позволяет создать буферную область. Эту папку можно монтировать как результирующую для первого сервиса и исходную - для второго -## Видеодемонстрация -Был записан видеоролик, демонстрирующий процесс запуска и работы сервисов. Он расположен по [адресу](https://drive.google.com/file/d/1sACiKx3_HRApa89a7LZFAZV05o7POhq6/view?usp=sharing) - diff --git a/kuzarin_maxim_lab_2/SecondApplication/Dockerfile b/kuzarin_maxim_lab_2/SecondApplication/Dockerfile deleted file mode 100644 index ab41eb4..0000000 --- a/kuzarin_maxim_lab_2/SecondApplication/Dockerfile +++ /dev/null @@ -1,20 +0,0 @@ -FROM mcr.microsoft.com/dotnet/runtime:8.0 AS base -WORKDIR /app - -FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build -ARG BUILD_CONFIGURATION=Release -WORKDIR /src -COPY ["SecondApplication.csproj", "SecondApplication/"] -RUN dotnet restore "./SecondApplication/SecondApplication.csproj" -WORKDIR "/src/SecondApplication" -COPY . . -RUN dotnet build "SecondApplication.csproj" -c $BUILD_CONFIGURATION -o /app/build - -FROM build AS publish -ARG BUILD_CONFIGURATION=Release -RUN dotnet publish "SecondApplication.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false - -FROM base AS final -WORKDIR /app -COPY --from=publish /app/publish . -ENTRYPOINT ["dotnet", "SecondApplication.dll"] \ No newline at end of file diff --git a/kuzarin_maxim_lab_2/SecondApplication/Program.cs b/kuzarin_maxim_lab_2/SecondApplication/Program.cs deleted file mode 100644 index 88f37a1..0000000 --- a/kuzarin_maxim_lab_2/SecondApplication/Program.cs +++ /dev/null @@ -1,31 +0,0 @@ -Console.WriteLine("Запущен второй сервис"); -string inputPath = Environment.GetEnvironmentVariable("INPUT_PATH") ?? ".\\input2"; -string outputPath = Environment.GetEnvironmentVariable("OUTPUT_PATH") ?? ".\\output2"; - -if (!Directory.Exists(outputPath)) - Directory.CreateDirectory(outputPath); - -var inputFilePath = Path.Combine(inputPath, "data.txt"); -var outputFilePath = Path.Combine(outputPath, "result.txt"); - -if (!File.Exists(inputFilePath)) -{ - Console.WriteLine($"Нет исходного файла {inputFilePath}"); - return; -} - -using var reader = new StreamReader(inputFilePath); - -long maxNumber = 0; - -while (true) -{ - var str = reader.ReadLine(); - if (str == null) break; - - if (long.TryParse(str, out var number) && number > maxNumber) - maxNumber = number; -} - -File.WriteAllText(outputFilePath, (maxNumber * maxNumber).ToString()); -Console.WriteLine($"Результат выполнения: {maxNumber * maxNumber}"); \ No newline at end of file diff --git a/kuzarin_maxim_lab_2/SecondApplication/Properties/launchSettings.json b/kuzarin_maxim_lab_2/SecondApplication/Properties/launchSettings.json deleted file mode 100644 index 2cc2f4d..0000000 --- a/kuzarin_maxim_lab_2/SecondApplication/Properties/launchSettings.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "profiles": { - "SecondApplication": { - "commandName": "Project" - }, - "Container (Dockerfile)": { - "commandName": "Docker" - } - } -} \ No newline at end of file diff --git a/kuzarin_maxim_lab_2/SecondApplication/SecondApplication.csproj b/kuzarin_maxim_lab_2/SecondApplication/SecondApplication.csproj deleted file mode 100644 index df30bfa..0000000 --- a/kuzarin_maxim_lab_2/SecondApplication/SecondApplication.csproj +++ /dev/null @@ -1,15 +0,0 @@ - - - - Exe - net8.0 - enable - enable - Linux - - - - - - - diff --git a/kuzarin_maxim_lab_2/docker-compose.yml b/kuzarin_maxim_lab_2/docker-compose.yml deleted file mode 100644 index 628de3d..0000000 --- a/kuzarin_maxim_lab_2/docker-compose.yml +++ /dev/null @@ -1,22 +0,0 @@ -services: - first: - build: ./FirstApplication/ - volumes: - - ./volumes/input:/var/data - - buffer:/var/result - environment: - INPUT_PATH: "/var/data" - OUTPUT_PATH: "/var/result" - - second: - build: ./SecondApplication/ - depends_on: - - first - volumes: - - buffer:/var/data - - ./volumes/output:/var/result - environment: - INPUT_PATH: "/var/data" - OUTPUT_PATH: "/var/result" -volumes: - buffer: \ 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 22240bdb27af02d5b046fc3084f1dbae145255af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116544 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

^&S#Segw9NadlBa* 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 f8vgHIn;G@Il%Qp@Y&1 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 Z+3(GQfq3g3H0xYi>Ux)pE?p1#e*nnSXYv35 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