diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 697082a..0000000 --- a/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ - -/dozorova_alena_lab_2/.vs -/dozorova_alena_lab_2/ConsoleApp1/.vs -/dozorova_alena_lab_2/ConsoleApp1/bin -/dozorova_alena_lab_2/ConsoleApp1/obj -/dozorova_alena_lab_2/ConsoleApp1/Properties/PublishProfiles -/dozorova_alena_lab_2/ConsoleApp2/.vs -/dozorova_alena_lab_2/ConsoleApp2/bin -/dozorova_alena_lab_2/ConsoleApp2/obj diff --git a/balakhonov_danila_lab_1/README.md b/balakhonov_danila_lab_1/README.md deleted file mode 100644 index fb03807..0000000 --- a/balakhonov_danila_lab_1/README.md +++ /dev/null @@ -1,59 +0,0 @@ -# Лабораторная работа номер 1 - -> Здравствуйте меня зовут Балахонов Данила группа ПИбд-42 -> -> *— Балахонов Данила ПИбд-42* - -Видео лабораторной работы номер 1 доступно по этой [ссылке](https://drive.google.com/file/d/1Up_JzDcK_TjYLixpfYXN7PhJmOeg_Uck/view?usp=sharing). - -## Как запустить лабораторную работу номер 1? -### Необходимые компоненты для запуска лабораторной работы номер 1 -> Здесь рассказана установка необходимых компонентов для запуска лабораторной работы номер 1 под дистрибутив GNU/Linux **Ubuntu**. - -Для запуска лабораторной работы номер 1 необходимы такие компоненты: - - Git - - Docker - - Docker compose - -Чтобы установить **Git**, необходимо ввести данные команды в командную строку: -``` bash -sudo apt-get update -sudo apt-get install git -``` - -Чтобы установить **Docker** и **Docker compose**, стоит ввести такие команды: -``` bash -# Настройка репозитория Docker -sudo apt-get update -sudo apt-get install ca-certificates curl -sudo install -m 0755 -d /etc/apt/keyrings -sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc -sudo chmod a+r /etc/apt/keyrings/docker.asc - -echo \ - "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ - $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ - sudo tee /etc/apt/sources.list.d/docker.list > /dev/null -sudo apt-get update - -# Установка Docker и его компонентов -sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -``` -### Запуск лабораторной работы номер 1 -Для запуска лабораторной работы номер 1 необходимо **склонировать** репозиторий в любую папку и **перейти на ветку** balakhonov_danila_lab_1. -Далее в папке с `docker-compose.yaml` нужно вызвать такую команду: -``` bash -sudo docker-compose up -d -``` -Таким образом будут запущены контейнеры в фоновом режиме. -## Какие технологии были использованы? -Для выполнения лабораторной работы номер 1 использовались такие технологии, как: *git*, *docker*, *docker compose*. - -Сервисы, выбранные для запуска в docker-compose файле: - - *Gitea* - удобный сервис отслеживания версий разрабатываемого ПО - - *MediaWiki* - сервис создания и ведения электронной энциклопедии - - *PostgreSQL* - база данных, используемая сервисами выше - -Системой, на которую были установлены указанные технологии, является Ubuntu 22. -## Что делает лабораторная работа номер 1? -Лабораторная работа номер 1 заключается в написании docker-compose файла для удобного запуска и администрирования сразу нескольких сервисов в docker-контейнерах. \ No newline at end of file diff --git a/balakhonov_danila_lab_1/docker-compose.yaml b/balakhonov_danila_lab_1/docker-compose.yaml deleted file mode 100644 index 68f242b..0000000 --- a/balakhonov_danila_lab_1/docker-compose.yaml +++ /dev/null @@ -1,58 +0,0 @@ -services: - # PostgreSQL - db: - # Образ контейнера PostgreSQL последней версии - image: postgres - # Название контейнера - container_name: db - # Переменные окружения для настройки базы данных - environment: - - POSTGRES_USER=gitea - - POSTGRES_PASSWORD=gitea - - POSTGRES_DB=gitea - # Настройка корневого каталога, где хранятся данные - # Слева указан каталог компьютера, справа - каталог контейнера - # Нужно для сохранения данных на сервере после отключения контейнера - volumes: - - ./postgres:/var/lib/postgresql/data - # Порт, через который можно будет подключиться к базе данных - ports: - - 5432:5432 - # После перезапуска докера всегда запускать этот контейнер - restart: always - # Gitea - gitea: - # Используется Gitea последней версии - image: gitea/gitea - container_name: gitea - # После перезапуска докера всегда запускать этот контейнер - restart: always - volumes: - - ./data:/var/lib/gitea - - ./config:/etc/gitea - - /etc/timezone:/etc/timezone:ro - - /etc/localtime:/etc/localtime:ro - ports: - - 3000:3000 - - 2222:2222 - environment: - - GITEA__database__DB_TYPE=postgres - - GITEA__database__HOST=db:5432 - - GITEA__database__NAME=gitea - - GITEA__database__USER=gitea - - GITEA__database__PASSWD=gitea - # Указывается, что этот контейнер запускается только после запуска контейнера db - depends_on: - - db - # MediaWiki - mediawiki: - # Образ контейнера MediaWiki последней версии - image: mediawiki - container_name: mediawiki - restart: always - ports: - - 8080:80 - links: - - db - volumes: - - ./images:/var/www/html/images \ No newline at end of file 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/dozorova_alena_lab_2/ConsoleApp1/ConsoleApp1.csproj.user b/dozorova_alena_lab_2/ConsoleApp1/ConsoleApp1.csproj.user deleted file mode 100644 index 6c031cb..0000000 --- a/dozorova_alena_lab_2/ConsoleApp1/ConsoleApp1.csproj.user +++ /dev/null @@ -1,7 +0,0 @@ - - - - Container (Dockerfile) - <_LastSelectedProfileId>C:\Users\Alena\WorkFolder\Study\politech\7\РВиП\DAS_2024_1\dozorova_alena_lab_2\ConsoleApp1\Properties\PublishProfiles\registry.hub.docker.com_alenadozorova.pubxml - - \ No newline at end of file diff --git a/dozorova_alena_lab_2/ConsoleApp1/Program.cs b/dozorova_alena_lab_2/ConsoleApp1/Program.cs deleted file mode 100644 index 5440c09..0000000 --- a/dozorova_alena_lab_2/ConsoleApp1/Program.cs +++ /dev/null @@ -1,32 +0,0 @@ -// Ищет в каталоге /var/data файл с самым коротким названием и перекладывает -// его в /var/result/data.txt. - -Console.WriteLine("Start first service"); -var files = Directory.GetFiles("/var/data/"); - -if(files == null || files.Length == 0) -{ - File.Create("./var/data/data.txt"); -} - -string res = files[0]; - -files.ToList().ForEach(f => -{ - if(res.Length > f.Length) - { - res = f; - } -}); - -Console.WriteLine("Find file " + res); - -if(!Directory.Exists("/var/result")) -{ - Directory.CreateDirectory("/var/result"); -} - -File.Copy(res, "/var/result/data.txt"); - -Console.WriteLine("Copy to /var/result/data.txt"); - diff --git a/dozorova_alena_lab_2/ConsoleApp1/Properties/launchSettings.json b/dozorova_alena_lab_2/ConsoleApp1/Properties/launchSettings.json deleted file mode 100644 index 1fc0367..0000000 --- a/dozorova_alena_lab_2/ConsoleApp1/Properties/launchSettings.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "profiles": { - "ConsoleApp1": { - "commandName": "Project" - }, - "Container (Dockerfile)": { - "commandName": "Docker" - } - } -} \ No newline at end of file diff --git a/dozorova_alena_lab_2/ConsoleApp2/ConsoleApp2.csproj.user b/dozorova_alena_lab_2/ConsoleApp2/ConsoleApp2.csproj.user deleted file mode 100644 index dd2d54c..0000000 --- a/dozorova_alena_lab_2/ConsoleApp2/ConsoleApp2.csproj.user +++ /dev/null @@ -1,6 +0,0 @@ - - - - Container (Dockerfile) - - \ No newline at end of file diff --git a/dozorova_alena_lab_2/ConsoleApp2/Program.cs b/dozorova_alena_lab_2/ConsoleApp2/Program.cs deleted file mode 100644 index ccbf2e3..0000000 --- a/dozorova_alena_lab_2/ConsoleApp2/Program.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Ищет набольшее число из файла /var/data/data.txt и сохраняет -// его вторую степень в /var/result/result.txt. -Console.WriteLine("Start second service"); -var data = File.ReadAllText("/var/data/data.txt").Split(" ").ToList(); - -var max = data.Select(x => Int32.TryParse(x, out int value) ? value : 0).Max(); - -Console.WriteLine("Find max value: "+max); -if(!Directory.Exists("/var/result/")) -{ - Directory.CreateDirectory("/var/result/"); -} - -File.WriteAllText("/var/result/result.txt", Math.Pow(max, 2).ToString()); - -Console.WriteLine("Save to /var/result/result.txt"); \ No newline at end of file diff --git a/dozorova_alena_lab_2/ConsoleApp2/Properties/launchSettings.json b/dozorova_alena_lab_2/ConsoleApp2/Properties/launchSettings.json deleted file mode 100644 index 7d85e14..0000000 --- a/dozorova_alena_lab_2/ConsoleApp2/Properties/launchSettings.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "profiles": { - "ConsoleApp2": { - "commandName": "Project" - }, - "Container (Dockerfile)": { - "commandName": "Docker" - } - } -} \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/0.txt b/dozorova_alena_lab_2/FilesInput/First/0.txt deleted file mode 100644 index 85b45be..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/0.txt +++ /dev/null @@ -1 +0,0 @@ -52 32 22 57 23 30 63 22 27 32 10 0 58 40 83 86 21 87 84 27 44 31 59 35 37 57 21 97 87 7 23 89 27 35 55 9 14 35 59 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/1.txt b/dozorova_alena_lab_2/FilesInput/First/1.txt deleted file mode 100644 index 252c02b..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/1.txt +++ /dev/null @@ -1 +0,0 @@ -93 95 67 2 81 16 46 47 40 43 93 71 16 63 6 86 94 8 55 32 59 28 71 43 39 29 60 23 43 75 67 70 73 50 75 65 10 99 41 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/10.txt b/dozorova_alena_lab_2/FilesInput/First/10.txt deleted file mode 100644 index 35d8815..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/10.txt +++ /dev/null @@ -1 +0,0 @@ -48 88 38 25 7 96 34 30 92 34 97 0 81 41 94 85 4 82 77 23 41 8 78 93 38 12 27 55 97 46 20 52 88 54 35 72 62 28 43 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/11.txt b/dozorova_alena_lab_2/FilesInput/First/11.txt deleted file mode 100644 index 2de3f85..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/11.txt +++ /dev/null @@ -1 +0,0 @@ -14 3 92 80 29 21 88 21 98 41 64 10 73 57 31 27 92 84 53 37 35 27 60 52 54 90 89 4 90 95 26 79 55 31 34 17 26 90 49 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/12.txt b/dozorova_alena_lab_2/FilesInput/First/12.txt deleted file mode 100644 index cb6764e..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/12.txt +++ /dev/null @@ -1 +0,0 @@ -66 33 75 48 42 37 2 29 34 77 0 11 59 38 61 80 85 29 50 59 14 64 37 91 65 65 3 14 41 19 13 49 42 30 55 69 81 8 39 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/13.txt b/dozorova_alena_lab_2/FilesInput/First/13.txt deleted file mode 100644 index 83eea89..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/13.txt +++ /dev/null @@ -1 +0,0 @@ -57 54 24 59 80 67 13 95 86 96 58 60 32 20 79 56 5 98 27 5 71 92 1 54 47 85 33 87 97 41 49 52 35 86 60 21 64 76 75 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/14.txt b/dozorova_alena_lab_2/FilesInput/First/14.txt deleted file mode 100644 index b69c830..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/14.txt +++ /dev/null @@ -1 +0,0 @@ -75 57 65 15 61 79 94 34 49 33 25 58 91 55 91 81 64 50 25 46 87 44 28 65 15 68 94 56 58 2 40 39 14 29 35 24 9 48 65 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/15.txt b/dozorova_alena_lab_2/FilesInput/First/15.txt deleted file mode 100644 index 4293908..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/15.txt +++ /dev/null @@ -1 +0,0 @@ -91 31 90 98 76 35 61 95 67 78 23 91 26 33 2 44 93 20 90 14 33 22 19 35 57 65 81 62 91 84 69 74 55 34 63 98 64 4 77 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/16.txt b/dozorova_alena_lab_2/FilesInput/First/16.txt deleted file mode 100644 index bcfad3f..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/16.txt +++ /dev/null @@ -1 +0,0 @@ -41 11 46 24 85 69 93 45 33 33 97 31 91 75 43 60 32 3 76 58 70 66 97 7 75 14 62 1 32 17 54 79 3 59 67 15 43 92 43 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/17.txt b/dozorova_alena_lab_2/FilesInput/First/17.txt deleted file mode 100644 index 899f58f..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/17.txt +++ /dev/null @@ -1 +0,0 @@ -36 88 91 3 42 4 87 65 42 10 95 54 71 79 60 9 5 63 87 27 75 79 67 45 89 32 65 38 64 22 73 78 48 57 89 28 81 58 18 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/18.txt b/dozorova_alena_lab_2/FilesInput/First/18.txt deleted file mode 100644 index 599a026..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/18.txt +++ /dev/null @@ -1 +0,0 @@ -39 86 99 32 34 57 95 27 73 90 80 62 85 91 50 24 54 36 15 87 6 54 63 63 78 10 18 90 9 20 14 57 54 4 97 22 80 50 24 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/19.txt b/dozorova_alena_lab_2/FilesInput/First/19.txt deleted file mode 100644 index c5a78c4..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/19.txt +++ /dev/null @@ -1 +0,0 @@ -32 65 91 95 28 84 23 47 63 3 78 70 48 15 17 58 22 20 67 58 27 24 68 97 3 55 57 9 18 85 14 16 23 10 1 97 24 64 83 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/2.txt b/dozorova_alena_lab_2/FilesInput/First/2.txt deleted file mode 100644 index a933198..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/2.txt +++ /dev/null @@ -1 +0,0 @@ -50 60 55 6 46 82 92 76 47 53 94 93 58 71 54 68 83 56 32 39 96 9 31 93 30 72 88 15 1 45 5 98 64 83 45 60 73 69 74 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/20.txt b/dozorova_alena_lab_2/FilesInput/First/20.txt deleted file mode 100644 index b6d09fa..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/20.txt +++ /dev/null @@ -1 +0,0 @@ -26 79 84 64 17 53 9 84 52 98 27 42 8 11 83 67 66 57 81 80 47 95 53 98 66 88 60 0 93 98 43 87 47 17 48 49 28 35 28 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/21.txt b/dozorova_alena_lab_2/FilesInput/First/21.txt deleted file mode 100644 index 3cec464..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/21.txt +++ /dev/null @@ -1 +0,0 @@ -60 70 16 18 71 67 22 71 54 55 70 57 13 54 84 73 99 27 53 13 49 68 12 89 96 77 93 52 80 62 59 11 73 9 33 40 49 82 1 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/22.txt b/dozorova_alena_lab_2/FilesInput/First/22.txt deleted file mode 100644 index 3ce9290..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/22.txt +++ /dev/null @@ -1 +0,0 @@ -67 22 18 71 64 80 19 5 28 2 75 73 9 51 8 81 76 36 96 26 58 96 95 4 88 51 24 10 71 33 79 63 21 59 95 61 28 97 40 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/23.txt b/dozorova_alena_lab_2/FilesInput/First/23.txt deleted file mode 100644 index 279a9fd..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/23.txt +++ /dev/null @@ -1 +0,0 @@ -62 36 50 68 46 3 28 7 16 30 26 1 21 39 27 78 13 92 34 6 6 38 70 1 1 42 45 20 98 49 61 24 51 45 56 33 53 3 75 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/24.txt b/dozorova_alena_lab_2/FilesInput/First/24.txt deleted file mode 100644 index c6b785a..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/24.txt +++ /dev/null @@ -1 +0,0 @@ -81 40 95 8 98 87 88 60 51 87 38 42 13 99 75 24 98 90 33 71 99 41 95 68 39 52 9 64 77 61 70 17 90 91 64 53 41 13 5 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/25.txt b/dozorova_alena_lab_2/FilesInput/First/25.txt deleted file mode 100644 index 574d4ec..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/25.txt +++ /dev/null @@ -1 +0,0 @@ -79 25 4 32 1 51 91 16 26 23 87 8 98 25 23 86 23 94 24 35 34 84 54 79 46 18 40 48 90 9 98 80 37 20 80 79 4 13 57 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/26.txt b/dozorova_alena_lab_2/FilesInput/First/26.txt deleted file mode 100644 index 8caa6bf..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/26.txt +++ /dev/null @@ -1 +0,0 @@ -66 95 69 29 36 5 17 70 97 10 6 72 92 87 72 90 68 94 77 49 23 68 73 74 77 49 94 75 40 52 57 70 80 77 67 34 67 65 61 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/27.txt b/dozorova_alena_lab_2/FilesInput/First/27.txt deleted file mode 100644 index 8e91577..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/27.txt +++ /dev/null @@ -1 +0,0 @@ -21 5 57 27 17 89 4 91 80 49 55 57 92 9 61 37 92 33 28 18 27 45 88 7 61 26 22 64 24 17 63 70 75 1 69 96 62 77 47 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/28.txt b/dozorova_alena_lab_2/FilesInput/First/28.txt deleted file mode 100644 index 67c6f55..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/28.txt +++ /dev/null @@ -1 +0,0 @@ -28 63 7 24 14 25 49 42 34 18 14 1 59 60 47 21 75 54 29 11 89 46 90 69 61 37 18 75 55 43 43 16 80 93 55 27 67 50 11 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/29.txt b/dozorova_alena_lab_2/FilesInput/First/29.txt deleted file mode 100644 index a288228..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/29.txt +++ /dev/null @@ -1 +0,0 @@ -35 9 60 57 42 99 29 73 61 44 21 75 18 96 67 9 81 37 39 54 83 33 62 62 17 30 11 7 30 10 37 1 36 75 92 40 77 37 69 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/3.txt b/dozorova_alena_lab_2/FilesInput/First/3.txt deleted file mode 100644 index 55fb352..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/3.txt +++ /dev/null @@ -1 +0,0 @@ -10 26 86 88 31 39 62 76 84 21 83 62 10 0 70 87 46 67 31 19 40 17 68 18 57 87 63 58 21 90 31 74 30 76 4 25 47 77 88 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/30.txt b/dozorova_alena_lab_2/FilesInput/First/30.txt deleted file mode 100644 index 4c0df26..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/30.txt +++ /dev/null @@ -1 +0,0 @@ -2 39 85 29 46 99 69 64 89 20 5 72 23 47 57 14 64 9 62 22 15 48 93 51 14 28 97 18 60 48 44 9 70 22 25 69 53 86 67 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/31.txt b/dozorova_alena_lab_2/FilesInput/First/31.txt deleted file mode 100644 index 1cdff86..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/31.txt +++ /dev/null @@ -1 +0,0 @@ -21 39 28 1 2 38 90 22 23 47 88 51 84 55 44 20 74 48 66 82 9 37 39 5 30 24 53 33 25 1 83 69 61 80 68 30 55 49 61 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/32.txt b/dozorova_alena_lab_2/FilesInput/First/32.txt deleted file mode 100644 index b77936c..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/32.txt +++ /dev/null @@ -1 +0,0 @@ -77 3 9 39 23 95 77 44 53 18 33 10 85 90 84 47 55 48 69 91 44 93 70 1 30 12 64 98 15 57 43 18 69 61 8 17 77 16 95 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/33.txt b/dozorova_alena_lab_2/FilesInput/First/33.txt deleted file mode 100644 index fd1dc3e..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/33.txt +++ /dev/null @@ -1 +0,0 @@ -13 6 29 65 44 37 43 75 20 61 35 9 39 20 28 58 58 55 11 16 18 65 62 41 36 96 63 75 61 5 13 75 9 84 1 59 73 87 10 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/34.txt b/dozorova_alena_lab_2/FilesInput/First/34.txt deleted file mode 100644 index a1efda9..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/34.txt +++ /dev/null @@ -1 +0,0 @@ -57 35 36 64 48 37 9 72 89 61 83 89 29 6 13 25 11 41 33 21 68 58 74 63 54 48 16 49 53 1 70 93 3 87 9 34 69 77 95 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/35.txt b/dozorova_alena_lab_2/FilesInput/First/35.txt deleted file mode 100644 index cbafe7e..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/35.txt +++ /dev/null @@ -1 +0,0 @@ -34 62 93 45 30 62 34 1 60 29 15 69 96 74 2 24 98 13 95 65 0 36 64 37 60 56 54 55 7 49 10 21 16 86 63 49 96 11 26 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/36.txt b/dozorova_alena_lab_2/FilesInput/First/36.txt deleted file mode 100644 index 1d2c8bd..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/36.txt +++ /dev/null @@ -1 +0,0 @@ -29 15 87 70 80 67 79 64 7 52 29 91 5 88 52 77 83 56 74 34 27 27 25 22 95 91 56 10 21 84 82 54 92 94 98 23 56 65 43 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/37.txt b/dozorova_alena_lab_2/FilesInput/First/37.txt deleted file mode 100644 index 6c47d53..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/37.txt +++ /dev/null @@ -1 +0,0 @@ -87 41 82 29 38 22 89 69 3 92 55 73 0 30 70 20 71 96 98 38 60 26 62 21 34 0 10 99 71 31 83 40 56 25 40 16 21 48 17 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/38.txt b/dozorova_alena_lab_2/FilesInput/First/38.txt deleted file mode 100644 index f9a19a7..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/38.txt +++ /dev/null @@ -1 +0,0 @@ -69 78 36 30 6 95 39 12 30 63 57 84 83 8 25 50 64 96 84 1 99 85 67 48 72 93 93 90 99 74 58 39 15 66 3 11 72 87 70 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/4.txt b/dozorova_alena_lab_2/FilesInput/First/4.txt deleted file mode 100644 index d21d0e5..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/4.txt +++ /dev/null @@ -1 +0,0 @@ -88 14 19 72 87 34 86 83 13 68 37 54 93 97 67 68 3 8 37 24 22 52 98 83 64 88 0 89 46 7 78 78 26 45 14 10 91 45 35 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/5.txt b/dozorova_alena_lab_2/FilesInput/First/5.txt deleted file mode 100644 index d099947..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/5.txt +++ /dev/null @@ -1 +0,0 @@ -46 1 4 50 36 86 56 84 17 54 89 38 36 25 4 93 48 97 63 99 34 42 0 9 16 88 82 10 98 57 0 37 41 33 32 27 61 43 3 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/6.txt b/dozorova_alena_lab_2/FilesInput/First/6.txt deleted file mode 100644 index 87d0082..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/6.txt +++ /dev/null @@ -1 +0,0 @@ -32 0 85 46 21 63 83 28 15 57 69 68 65 72 86 9 56 3 11 33 62 50 85 20 37 92 61 66 60 78 68 66 84 9 6 77 32 19 36 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/7.txt b/dozorova_alena_lab_2/FilesInput/First/7.txt deleted file mode 100644 index a69e9f4..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/7.txt +++ /dev/null @@ -1 +0,0 @@ -59 49 82 65 53 10 15 58 87 83 57 14 54 34 52 98 97 2 11 1 68 7 15 69 57 67 83 7 26 6 38 31 1 60 38 88 72 33 41 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/8.txt b/dozorova_alena_lab_2/FilesInput/First/8.txt deleted file mode 100644 index b42b4f3..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/8.txt +++ /dev/null @@ -1 +0,0 @@ -76 27 40 19 12 76 83 72 55 53 80 20 94 17 20 8 77 52 87 40 20 36 81 92 56 31 31 33 51 18 28 10 44 88 63 41 15 53 64 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/First/9.txt b/dozorova_alena_lab_2/FilesInput/First/9.txt deleted file mode 100644 index cbc48b0..0000000 --- a/dozorova_alena_lab_2/FilesInput/First/9.txt +++ /dev/null @@ -1 +0,0 @@ -11 56 97 86 0 43 38 49 0 91 1 94 58 27 82 9 25 7 28 41 37 97 44 97 87 96 74 9 10 89 91 51 94 32 77 34 15 12 0 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesInput/Second/data.txt b/dozorova_alena_lab_2/FilesInput/Second/data.txt deleted file mode 100644 index 85b45be..0000000 --- a/dozorova_alena_lab_2/FilesInput/Second/data.txt +++ /dev/null @@ -1 +0,0 @@ -52 32 22 57 23 30 63 22 27 32 10 0 58 40 83 86 21 87 84 27 44 31 59 35 37 57 21 97 87 7 23 89 27 35 55 9 14 35 59 \ No newline at end of file diff --git a/dozorova_alena_lab_2/FilesOutput/result.txt b/dozorova_alena_lab_2/FilesOutput/result.txt deleted file mode 100644 index 5a0a33a..0000000 --- a/dozorova_alena_lab_2/FilesOutput/result.txt +++ /dev/null @@ -1 +0,0 @@ -9409 \ No newline at end of file diff --git a/dozorova_alena_lab_2/docker-compose.yml b/dozorova_alena_lab_2/docker-compose.yml deleted file mode 100644 index 4e6538b..0000000 --- a/dozorova_alena_lab_2/docker-compose.yml +++ /dev/null @@ -1,14 +0,0 @@ -services: - first: - build: ./ConsoleApp1/ - volumes: - - ./FilesInput/First:/var/data - - ./FilesInput/Second:/var/result - - second: - build: ./ConsoleApp2/ - depends_on: - - first - volumes: - - ./FilesInput/Second:/var/data - - ./FilesOutput:/var/result \ No newline at end of file diff --git a/dozorova_alena_lab_2/readme.md b/dozorova_alena_lab_2/readme.md deleted file mode 100644 index 736c1cc..0000000 --- a/dozorova_alena_lab_2/readme.md +++ /dev/null @@ -1,70 +0,0 @@ -# Лабораторная работа 2 -В рамках лабораторной работы были реализованы два сервиса, для которых выходные данные первого являются входными данными второго. -## Описание -Варианты: -Первый сервис - 5 -Второй сервис - 1 -Оба сервиса являются консольным приложением с сгенерированным dockerfile -В результате были проброшены папки следующим образом: -для первого сервиса : -``` - volumes: - - ./FilesInput/First:/var/data - - ./FilesInput/Second:/var/result -``` -для второго сервиса: -``` - volumes: - - ./FilesInput/Second:/var/data - - ./FilesOutput:/var/result -``` -## Запуск -Для запуска лабораторной работы необходимо иметь запущенный Docker. -Из папки, где находится файл docker-compose.yml запустить консоль и выполнить: -``` -docker compose up --build -``` -Флаг `--build` указывает на то, что необходимо выполнить сборку исходников. -После сборки мы получим следующие логи: -[+] Running 3/2 - ✔ Network dozorova_alena_lab_2_default Created 0.2s - ✔ Container dozorova_alena_lab_2-first-1 Created 0.1s - ✔ Container dozorova_alena_lab_2-second-1 Created 0.0s -Attaching to first-1, second-1 -first-1 | Start first service -first-1 | Find file /var/data/0.txt -first-1 | Copy to /var/result/data.txt -first-1 exited with code 0 -second-1 | Start second service -second-1 | Find max value: 97 -second-1 | Save to /var/result/result.txt -second-1 exited with code 0 -## Пример dockerfile -``` -FROM mcr.microsoft.com/dotnet/runtime:6.0 AS base #базовый образ сборки -WORKDIR /app - -FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build #используем sdk для сборки -ARG BUILD_CONFIGURATION=Release #сборку проводим в релизной конфигурации -WORKDIR /src -COPY ["ConsoleApp2.csproj", "."] #копируем в контейнер -RUN dotnet restore "./ConsoleApp2.csproj" #восстанавливаем зависимости -COPY . . #копируем в папку сборки -WORKDIR "/src/." -RUN dotnet build "./ConsoleApp2.csproj" -c $BUILD_CONFIGURATION -o /app/build #собираем проект - -FROM build AS publish #все, что создалось в папке publish -ARG BUILD_CONFIGURATION=Release -RUN dotnet publish "./ConsoleApp2.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false #публикуем в /app/publish - -FROM base AS final #берем базовый образ -WORKDIR /app #указываем рабочую папку -COPY --from=publish /app/publish . #опубликованное копируем в app -ENTRYPOINT ["dotnet", "ConsoleApp2.dll"] #указываем команду запуска приложения -``` - -## Особенности compose файла -Директива`depends_on` позволяет указать, какого сервиса мы дожидаемся, прежде чем запустимся. -Директива `build` позволяет использовать не уже готовый образ, а тот, что будет собран непосредственно в момент запуска. -## Видеодемонстрация -Был записан видеоролик, демонстрирующий процесс запуска и работы сервисов. Он расположен по [адресу](https://drive.google.com/file/d/1BOt_Ja9AanINPjJyRKzgUaghRGwJYdd7/view?usp=drive_link) \ No newline at end of file diff --git a/dozorova_alena_lab_3/.gitignore b/dozorova_alena_lab_3/.gitignore new file mode 100644 index 0000000..126ce91 --- /dev/null +++ b/dozorova_alena_lab_3/.gitignore @@ -0,0 +1,7 @@ + +/dozorova_alena_lab_3/PostService/.vs +/dozorova_alena_lab_3/PostService/bin +/dozorova_alena_lab_3/PostService/obj +/dozorova_alena_lab_3/WorkerService/.vs +/dozorova_alena_lab_3/WorkerService/bin +/dozorova_alena_lab_3/WorkerService/obj diff --git a/dozorova_alena_lab_2/ConsoleApp1/.dockerignore b/dozorova_alena_lab_3/PostService/.dockerignore similarity index 100% rename from dozorova_alena_lab_2/ConsoleApp1/.dockerignore rename to dozorova_alena_lab_3/PostService/.dockerignore diff --git a/dozorova_alena_lab_3/PostService/Controllers/HomeController.cs b/dozorova_alena_lab_3/PostService/Controllers/HomeController.cs new file mode 100644 index 0000000..fd6a910 --- /dev/null +++ b/dozorova_alena_lab_3/PostService/Controllers/HomeController.cs @@ -0,0 +1,94 @@ +using Microsoft.AspNetCore.Mvc; +using Newtonsoft.Json; + +namespace PostService.Controllers +{ + [ApiController] + [Route("[controller]")] + public class HomeController : ControllerBase + { + private readonly ILogger _logger; + + public static List list = new List() + { + new Post() + { + Id = Guid.NewGuid(), + Name = "Default" + } + }; + public HomeController(ILogger logger) + { + _logger = logger; + } + + [HttpGet("get")] + public IActionResult Get() + { + return list == null || list.Count == 0 ? NotFound() : Ok(list); + } + + [HttpGet("get/{Id}")] + public IActionResult Get([FromRoute] Guid Id) + { + var obj = list.Where(l => l.Id == Id).FirstOrDefault(); + return obj == null ? NotFound() : Ok(obj); + } + + [HttpPost("create")] + public IActionResult Create([FromBody] CreateUpdatePost data) + { + try + { + var model = new Post() + { + Id = Guid.NewGuid(), + Name = data.Name, + }; + + list.Add(model); + + var modelForResult = new CreateUpdatePost + { + Name = model.Name + }; + + return Ok(modelForResult); + } + catch (Exception ex) + { + return BadRequest(ex.Message); + } + } + + [HttpPut("update/{Id}")] + public IActionResult Update([FromRoute] Guid Id, + [FromBody] CreateUpdatePost data) + { + var oldModel = list.Where(l => l.Id == Id).Select(l => list.IndexOf(l)).FirstOrDefault(); + if (oldModel != null) + { + list[oldModel].Name = data.Name; + + var modelForResult = new CreateUpdatePost { + Name = data.Name, + }; + + return Ok(modelForResult); + } + else return NotFound(); + } + + [HttpDelete("delete/{Id}")] + public IActionResult Delete([FromRoute] Guid Id) + { + var model = list.Where(l => l.Id != Id).FirstOrDefault(); + + if (model != null) { + list.Remove(model); + return Ok(); + } + else return NotFound(); + } + } +} diff --git a/dozorova_alena_lab_2/ConsoleApp2/Dockerfile b/dozorova_alena_lab_3/PostService/Dockerfile similarity index 60% rename from dozorova_alena_lab_2/ConsoleApp2/Dockerfile rename to dozorova_alena_lab_3/PostService/Dockerfile index 3d0b78d..e008642 100644 --- a/dozorova_alena_lab_2/ConsoleApp2/Dockerfile +++ b/dozorova_alena_lab_3/PostService/Dockerfile @@ -1,22 +1,24 @@ #See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging. -FROM mcr.microsoft.com/dotnet/runtime:6.0 AS base +FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base WORKDIR /app +EXPOSE 80 +EXPOSE 443 FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build ARG BUILD_CONFIGURATION=Release WORKDIR /src -COPY ["ConsoleApp2.csproj", "."] -RUN dotnet restore "./ConsoleApp2.csproj" +COPY ["PostService.csproj", "."] +RUN dotnet restore "./PostService.csproj" COPY . . WORKDIR "/src/." -RUN dotnet build "./ConsoleApp2.csproj" -c $BUILD_CONFIGURATION -o /app/build +RUN dotnet build "./PostService.csproj" -c $BUILD_CONFIGURATION -o /app/build FROM build AS publish ARG BUILD_CONFIGURATION=Release -RUN dotnet publish "./ConsoleApp2.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false +RUN dotnet publish "./PostService.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false FROM base AS final WORKDIR /app COPY --from=publish /app/publish . -ENTRYPOINT ["dotnet", "ConsoleApp2.dll"] \ No newline at end of file +ENTRYPOINT ["dotnet", "PostService.dll"] \ No newline at end of file diff --git a/dozorova_alena_lab_3/PostService/Entities.cs b/dozorova_alena_lab_3/PostService/Entities.cs new file mode 100644 index 0000000..68e89b6 --- /dev/null +++ b/dozorova_alena_lab_3/PostService/Entities.cs @@ -0,0 +1,16 @@ +namespace PostService +{ + public class Post + { + public Guid Id { get; set; } + public string Name { get; set; } + } + + public class PostDTO : Post { } + + public class CreateUpdatePost + { + public string Name { get; set; } + } + +} diff --git a/dozorova_alena_lab_2/ConsoleApp1/ConsoleApp1.csproj b/dozorova_alena_lab_3/PostService/PostService.csproj similarity index 59% rename from dozorova_alena_lab_2/ConsoleApp1/ConsoleApp1.csproj rename to dozorova_alena_lab_3/PostService/PostService.csproj index 599ec87..636dc06 100644 --- a/dozorova_alena_lab_2/ConsoleApp1/ConsoleApp1.csproj +++ b/dozorova_alena_lab_3/PostService/PostService.csproj @@ -1,13 +1,18 @@ - + + - Exe net6.0 - enable enable + enable + 1a8ae13d-1a3e-4308-955e-4fbf68b758c9 Linux . + + + - \ No newline at end of file + + diff --git a/dozorova_alena_lab_3/PostService/PostService.csproj.user b/dozorova_alena_lab_3/PostService/PostService.csproj.user new file mode 100644 index 0000000..1845663 --- /dev/null +++ b/dozorova_alena_lab_3/PostService/PostService.csproj.user @@ -0,0 +1,9 @@ + + + + PostService + + + ProjectDebugger + + \ No newline at end of file diff --git a/dozorova_alena_lab_2/ConsoleApp1/ConsoleApp1.sln b/dozorova_alena_lab_3/PostService/PostService.sln similarity index 60% rename from dozorova_alena_lab_2/ConsoleApp1/ConsoleApp1.sln rename to dozorova_alena_lab_3/PostService/PostService.sln index 12f3d98..b7f2c81 100644 --- a/dozorova_alena_lab_2/ConsoleApp1/ConsoleApp1.sln +++ b/dozorova_alena_lab_3/PostService/PostService.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.10.35004.147 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleApp1", "ConsoleApp1.csproj", "{093B5FCB-33F6-4F14-B150-87DA092D2BFA}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PostService", "PostService.csproj", "{EB304D56-A05F-41BC-9523-B5FEB658BCEE}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,15 +11,15 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {093B5FCB-33F6-4F14-B150-87DA092D2BFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {093B5FCB-33F6-4F14-B150-87DA092D2BFA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {093B5FCB-33F6-4F14-B150-87DA092D2BFA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {093B5FCB-33F6-4F14-B150-87DA092D2BFA}.Release|Any CPU.Build.0 = Release|Any CPU + {EB304D56-A05F-41BC-9523-B5FEB658BCEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EB304D56-A05F-41BC-9523-B5FEB658BCEE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EB304D56-A05F-41BC-9523-B5FEB658BCEE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EB304D56-A05F-41BC-9523-B5FEB658BCEE}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {CDC30087-C732-4ED0-97FB-E43A9F219F67} + SolutionGuid = {6625EB51-D403-4C57-A7C2-AA01C90AB472} EndGlobalSection EndGlobal diff --git a/dozorova_alena_lab_3/PostService/Program.cs b/dozorova_alena_lab_3/PostService/Program.cs new file mode 100644 index 0000000..1dcd45d --- /dev/null +++ b/dozorova_alena_lab_3/PostService/Program.cs @@ -0,0 +1,31 @@ +using Microsoft.OpenApi.Models; + +var builder = WebApplication.CreateBuilder(args); + +// Add services to the container. + +builder.Services.AddControllers(); +// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle +builder.Services.AddEndpointsApiExplorer(); +builder.Services.AddSwaggerGen(); + +var app = builder.Build(); + +app.UseSwagger(c => +{ + + c.PreSerializeFilters.Add((swaggerDoc, httpReq) => + { + swaggerDoc.Servers = new List { new OpenApiServer { Url = $"{httpReq.Scheme}://{httpReq.Host.Value}/postservice" } }; + }); +}); +app.UseSwaggerUI(); + + +app.UseHttpsRedirection(); + +app.UseAuthorization(); + +app.MapControllers(); + +app.Run(); diff --git a/dozorova_alena_lab_3/PostService/Properties/launchSettings.json b/dozorova_alena_lab_3/PostService/Properties/launchSettings.json new file mode 100644 index 0000000..a74a8aa --- /dev/null +++ b/dozorova_alena_lab_3/PostService/Properties/launchSettings.json @@ -0,0 +1,41 @@ +{ + "profiles": { + "PostService": { + "commandName": "Project", + "launchBrowser": true, + "launchUrl": "swagger", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "dotnetRunMessages": true, + "applicationUrl": "https://localhost:7293;http://localhost:5139" + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "launchUrl": "swagger", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "Container (Dockerfile)": { + "commandName": "Docker", + "launchBrowser": true, + "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/swagger", + "environmentVariables": { + "ASPNETCORE_URLS": "https://+:443;http://+:80" + }, + "publishAllPorts": true, + "useSSL": true + } + }, + "$schema": "https://json.schemastore.org/launchsettings.json", + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:36974", + "sslPort": 44370 + } + } +} \ No newline at end of file diff --git a/dozorova_alena_lab_3/PostService/appsettings.Development.json b/dozorova_alena_lab_3/PostService/appsettings.Development.json new file mode 100644 index 0000000..0c208ae --- /dev/null +++ b/dozorova_alena_lab_3/PostService/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/dozorova_alena_lab_3/PostService/appsettings.json b/dozorova_alena_lab_3/PostService/appsettings.json new file mode 100644 index 0000000..10f68b8 --- /dev/null +++ b/dozorova_alena_lab_3/PostService/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/dozorova_alena_lab_2/ConsoleApp2/.dockerignore b/dozorova_alena_lab_3/WorkerService/.dockerignore similarity index 100% rename from dozorova_alena_lab_2/ConsoleApp2/.dockerignore rename to dozorova_alena_lab_3/WorkerService/.dockerignore diff --git a/dozorova_alena_lab_3/WorkerService/Controllers/HomeController.cs b/dozorova_alena_lab_3/WorkerService/Controllers/HomeController.cs new file mode 100644 index 0000000..ec3be33 --- /dev/null +++ b/dozorova_alena_lab_3/WorkerService/Controllers/HomeController.cs @@ -0,0 +1,112 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Hosting; +using RestSharp; + +namespace WorkerService.Controllers +{ + [ApiController] + [Route("[controller]")] + public class HomeController : ControllerBase + { + private readonly ILogger _logger; + private readonly RestClient _restClient; + + public static List list = new List(); + public HomeController(ILogger logger) + { + _logger = logger; + _restClient = new RestClient("http://nginx/postservice/Home"); + } + + [HttpGet("get")] + public IActionResult Get() + { + if (list == null || list.Count == 0) + { + return NotFound(); + } + + var result = list.Select(l => new GetEntity + { + Id = l.Id, + FIO = l.FIO, + PostId = l.PostId, + }); + + return Ok(result); + } + + [HttpGet("get/{Id}")] + public IActionResult Get([FromRoute] Guid Id) + { + var obj = list.Where(l => l.Id == Id); + return obj == null ? NotFound() : Ok(obj); + } + + [HttpPost("create")] + public async Task CreateAsync([FromBody] CreateUpdateWorker data) + { + try + { + var model = new WorkerEntity() + { + Id = Guid.NewGuid(), + FIO = data.FIO, + PostId = data.PostId, + }; + + var restRequest = new RestRequest($"/get/{data.PostId}", Method.Get); + var responce = await _restClient.ExecuteAsync(restRequest); + + if (!responce.IsSuccessful) + { + return BadRequest(responce); + } + + model.Post = responce.Data; + + list.Add(model); + + return Ok(model); + } + catch (Exception ex) + { + return BadRequest(ex.Message); + } + } + + [HttpPut("update/{Id}")] + public IActionResult Update([FromRoute] Guid Id, + [FromBody] CreateUpdateWorker data) + { + var oldModel = list.Where(l => l.Id == Id).Select(l => list.IndexOf(l)).FirstOrDefault(); + if (oldModel != null) + { + list[oldModel].FIO = data.FIO; + list[oldModel].PostId = data.PostId; + + var modelForResult = new CreateUpdateWorker + { + FIO = data.FIO, + PostId = data.PostId, + }; + + return Ok(modelForResult); + } + else return NotFound(); + } + + [HttpDelete("delete/{Id}")] + public IActionResult Delete([FromRoute] Guid Id) + { + var model = list.Where(l => l.Id != Id).FirstOrDefault(); + + if (model != null) + { + list.Remove(model); + return Ok(); + } + else return NotFound(); + } + } +} diff --git a/dozorova_alena_lab_2/ConsoleApp1/Dockerfile b/dozorova_alena_lab_3/WorkerService/Dockerfile similarity index 53% rename from dozorova_alena_lab_2/ConsoleApp1/Dockerfile rename to dozorova_alena_lab_3/WorkerService/Dockerfile index 6bbf72d..83d5ee9 100644 --- a/dozorova_alena_lab_2/ConsoleApp1/Dockerfile +++ b/dozorova_alena_lab_3/WorkerService/Dockerfile @@ -1,22 +1,24 @@ #See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging. -FROM mcr.microsoft.com/dotnet/runtime:6.0 AS base +FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base WORKDIR /app +EXPOSE 80 +EXPOSE 443 FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build ARG BUILD_CONFIGURATION=Release WORKDIR /src -COPY ["ConsoleApp1.csproj", "."] -RUN dotnet restore "./ConsoleApp1.csproj" +COPY ["WorkerService.csproj", "."] +RUN dotnet restore "./WorkerService.csproj" COPY . . WORKDIR "/src/." -RUN dotnet build "./ConsoleApp1.csproj" -c $BUILD_CONFIGURATION -o /app/build +RUN dotnet build "./WorkerService.csproj" -c $BUILD_CONFIGURATION -o /app/build FROM build AS publish ARG BUILD_CONFIGURATION=Release -RUN dotnet publish "./ConsoleApp1.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false +RUN dotnet publish "./WorkerService.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false FROM base AS final WORKDIR /app COPY --from=publish /app/publish . -ENTRYPOINT ["dotnet", "ConsoleApp1.dll"] \ No newline at end of file +ENTRYPOINT ["dotnet", "WorkerService.dll"] \ No newline at end of file diff --git a/dozorova_alena_lab_3/WorkerService/Entities.cs b/dozorova_alena_lab_3/WorkerService/Entities.cs new file mode 100644 index 0000000..24a171b --- /dev/null +++ b/dozorova_alena_lab_3/WorkerService/Entities.cs @@ -0,0 +1,32 @@ +namespace WorkerService +{ + public class WorkerEntity + { + public Guid Id { get; set; } + public string FIO { get; set; } + + public Guid PostId { get; set; } + public PostEntity Post { get; set; } + } + + public class PostEntity + { + public Guid id { get; set; } + public string name { get; set; } + } + + public class CreateUpdateWorker + { + public string FIO { get; set; } + + public Guid PostId { get; set; } + } + + public class GetEntity + { + public Guid Id { get; set; } + public string FIO { get; set; } + + public Guid PostId { get; set; } + } +} diff --git a/dozorova_alena_lab_3/WorkerService/Program.cs b/dozorova_alena_lab_3/WorkerService/Program.cs new file mode 100644 index 0000000..200f056 --- /dev/null +++ b/dozorova_alena_lab_3/WorkerService/Program.cs @@ -0,0 +1,32 @@ +using Microsoft.OpenApi.Models; + +var builder = WebApplication.CreateBuilder(args); + +// Add services to the container. + +builder.Services.AddControllers(); +// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle +builder.Services.AddEndpointsApiExplorer(); +builder.Services.AddSwaggerGen(); + +var app = builder.Build(); + +app.UseSwagger(c => +{ + + c.PreSerializeFilters.Add((swaggerDoc, httpReq) => + { + swaggerDoc.Servers = new List { new OpenApiServer { Url = $"{httpReq.Scheme}://{httpReq.Host.Value}/workerservice" } }; + }); +}); + +app.UseSwaggerUI(); + + +app.UseHttpsRedirection(); + +app.UseAuthorization(); + +app.MapControllers(); + +app.Run(); diff --git a/dozorova_alena_lab_3/WorkerService/Properties/launchSettings.json b/dozorova_alena_lab_3/WorkerService/Properties/launchSettings.json new file mode 100644 index 0000000..5ed73ae --- /dev/null +++ b/dozorova_alena_lab_3/WorkerService/Properties/launchSettings.json @@ -0,0 +1,41 @@ +{ + "profiles": { + "WorkerService": { + "commandName": "Project", + "launchBrowser": true, + "launchUrl": "swagger", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "dotnetRunMessages": true, + "applicationUrl": "https://localhost:7144;http://localhost:5220" + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "launchUrl": "swagger", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "Container (Dockerfile)": { + "commandName": "Docker", + "launchBrowser": true, + "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/swagger", + "environmentVariables": { + "ASPNETCORE_URLS": "https://+:443;http://+:80" + }, + "publishAllPorts": true, + "useSSL": true + } + }, + "$schema": "https://json.schemastore.org/launchsettings.json", + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:55850", + "sslPort": 44303 + } + } +} \ No newline at end of file diff --git a/dozorova_alena_lab_2/ConsoleApp2/ConsoleApp2.csproj b/dozorova_alena_lab_3/WorkerService/WorkerService.csproj similarity index 62% rename from dozorova_alena_lab_2/ConsoleApp2/ConsoleApp2.csproj rename to dozorova_alena_lab_3/WorkerService/WorkerService.csproj index 7be2204..11b28a9 100644 --- a/dozorova_alena_lab_2/ConsoleApp2/ConsoleApp2.csproj +++ b/dozorova_alena_lab_3/WorkerService/WorkerService.csproj @@ -1,16 +1,18 @@ - + - Exe net6.0 - enable enable + enable + 3228803c-add9-46fb-b949-9e2a2e89056a Linux . + + diff --git a/dozorova_alena_lab_3/WorkerService/WorkerService.csproj.user b/dozorova_alena_lab_3/WorkerService/WorkerService.csproj.user new file mode 100644 index 0000000..3ecccef --- /dev/null +++ b/dozorova_alena_lab_3/WorkerService/WorkerService.csproj.user @@ -0,0 +1,9 @@ + + + + WorkerService + + + ProjectDebugger + + \ No newline at end of file diff --git a/dozorova_alena_lab_2/ConsoleApp2/ConsoleApp2.sln b/dozorova_alena_lab_3/WorkerService/WorkerService.sln similarity index 59% rename from dozorova_alena_lab_2/ConsoleApp2/ConsoleApp2.sln rename to dozorova_alena_lab_3/WorkerService/WorkerService.sln index 8337ab4..01a2c13 100644 --- a/dozorova_alena_lab_2/ConsoleApp2/ConsoleApp2.sln +++ b/dozorova_alena_lab_3/WorkerService/WorkerService.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.10.35004.147 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleApp2", "ConsoleApp2.csproj", "{364FF6E2-3AED-4C3A-B2DD-D20CA9214BB8}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WorkerService", "WorkerService.csproj", "{A9DF2332-E571-49AD-805A-D61B23C40D5F}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,15 +11,15 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {364FF6E2-3AED-4C3A-B2DD-D20CA9214BB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {364FF6E2-3AED-4C3A-B2DD-D20CA9214BB8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {364FF6E2-3AED-4C3A-B2DD-D20CA9214BB8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {364FF6E2-3AED-4C3A-B2DD-D20CA9214BB8}.Release|Any CPU.Build.0 = Release|Any CPU + {A9DF2332-E571-49AD-805A-D61B23C40D5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A9DF2332-E571-49AD-805A-D61B23C40D5F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A9DF2332-E571-49AD-805A-D61B23C40D5F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A9DF2332-E571-49AD-805A-D61B23C40D5F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {E5B491A6-064F-48E0-ACBD-E1B4FE3D0898} + SolutionGuid = {B515427C-329A-4B73-B82C-45D929A6EA75} EndGlobalSection EndGlobal diff --git a/dozorova_alena_lab_3/WorkerService/appsettings.Development.json b/dozorova_alena_lab_3/WorkerService/appsettings.Development.json new file mode 100644 index 0000000..0c208ae --- /dev/null +++ b/dozorova_alena_lab_3/WorkerService/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/dozorova_alena_lab_3/WorkerService/appsettings.json b/dozorova_alena_lab_3/WorkerService/appsettings.json new file mode 100644 index 0000000..10f68b8 --- /dev/null +++ b/dozorova_alena_lab_3/WorkerService/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/dozorova_alena_lab_3/docker-compose.yml b/dozorova_alena_lab_3/docker-compose.yml new file mode 100644 index 0000000..b58a763 --- /dev/null +++ b/dozorova_alena_lab_3/docker-compose.yml @@ -0,0 +1,21 @@ +services: + nginx: + image: nginx + depends_on: + - postservice + - workerservice + volumes: + - ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf + ports: + - 80:80 + + postservice: + build: .\PostService + ports: + - 81:8080 + workerservice: + build: .\WorkerService + ports: + - 82:8080 + depends_on: + - postservice \ No newline at end of file diff --git a/dozorova_alena_lab_3/nginx/nginx.conf b/dozorova_alena_lab_3/nginx/nginx.conf new file mode 100644 index 0000000..6ba2e76 --- /dev/null +++ b/dozorova_alena_lab_3/nginx/nginx.conf @@ -0,0 +1,21 @@ +server { + listen 80; + listen [::]:80; + server_name localhost; + + location /postservice/ { + proxy_pass http://postservice:80/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-Prefix /admin; + } + + location /workerservice/ { + proxy_pass http://workerservice:80/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-Prefix /admin; + } +} \ No newline at end of file diff --git a/dozorova_alena_lab_3/readme.md b/dozorova_alena_lab_3/readme.md new file mode 100644 index 0000000..3b2336a --- /dev/null +++ b/dozorova_alena_lab_3/readme.md @@ -0,0 +1,16 @@ +# Лабораторная работа 3 +В работе представлен пример синхронного обмена сообщениями между сервисами и их взаимодейсвием с внешним миром. +## Описание +Были взяты две сущности: работник и должность. Первый сервис позволяет манипулировать списком должностей, второй - списком работников, у каждого из которых может быть одна должность. У одной должности может быть много работников. +Реализована система была с помощью web-api на c# с хранением данных в оперативной памяти. +В качестве интерфейса используется Swagger, который можно использовать для отправки запросов. +## Запуск +Для запуска лабораторной работы необходимо иметь запущенный Docker. +Необходимо перейти в папку, где располагается данный файл. Далее открыть терминал и ввести команду: +``` +docker compose up -d --build +``` +Важно, чтобы в этот момент на компьютере был свободен порт 80. +В результате, после сборки вся система запустится и Swagger-ы будут доступны по путям http://localhost/postservice/swagger и http://localhost/workerservice/swagger +## Видеодемонстрация +Видеодемонстрация результата лабораторной работы представлена по [адресу](https://drive.google.com/file/d/1rg2xnXM-jPDfFJWxNIitq0I8kXj9Pr3-/view?usp=sharing) \ No newline at end of file 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/emelyanov_artem_lab_2/README.md b/emelyanov_artem_lab_2/README.md deleted file mode 100644 index 5978d5d..0000000 --- a/emelyanov_artem_lab_2/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# Распределённое приложение для поиска файлов и обработки чисел -## Описаниe -Данное распределённое приложение состоит из двух консольных Java-приложений, которые работают в контейнерах Docker. Приложения выполняют следующие задачи: - -### file-finder: -Ищет самый большой файл в директории /var/data и копирует его в /var/result/data.txt. -### number-processor: -Считывает числа из файла /var/result/data.txt и сохраняет произведение первого и последнего числа в файл /var/result/result.txt. - -#### Приложения работают совместно через Docker Compose, используя общий том для передачи файлов между контейнерами. - -### Как запустить -1. #### Подготовка данных - Убедитесь, что в директории data находятся файлы, которые вы хотите обработать. Это могут быть текстовые файлы с числами. - -2. #### Сборка и запуск контейнеров - Выполните команду для сборки и запуска контейнеров с помощью Docker Compose: docker-compose up --build - -3. #### Результаты выполнения - #### Приложение file-finder находит самый большой файл в директории /var/data (локально это монтируемая директория data/) и копирует его в файл /var/result/data.txt. - #### Приложение number-processor читает файл /var/result/data.txt и сохраняет произведение первого и последнего числа в файл /var/result/result.txt. - -#### Ссылка на видео https://drive.google.com/file/d/1u7nwZdUI4KHC4NzUAXdOABflYswokGwx/view \ No newline at end of file diff --git a/emelyanov_artem_lab_2/app_1/.gitignore b/emelyanov_artem_lab_2/app_1/.gitignore deleted file mode 100644 index 4291186..0000000 --- a/emelyanov_artem_lab_2/app_1/.gitignore +++ /dev/null @@ -1,31 +0,0 @@ -### IntelliJ IDEA ### -out/ -!**/src/main/**/out/ -!**/src/test/**/out/ - -### Eclipse ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache -bin/ -!**/src/main/**/bin/ -!**/src/test/**/bin/ - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ - -### VS Code ### -.vscode/ - -### Mac OS ### -.DS_Store -/.idea/modules.xml -/.idea/vcs.xml diff --git a/emelyanov_artem_lab_2/app_1/.idea/.gitignore b/emelyanov_artem_lab_2/app_1/.idea/.gitignore deleted file mode 100644 index 13566b8..0000000 --- a/emelyanov_artem_lab_2/app_1/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Editor-based HTTP Client requests -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/emelyanov_artem_lab_2/app_1/Dockerfile b/emelyanov_artem_lab_2/app_1/Dockerfile deleted file mode 100644 index 3e87ad7..0000000 --- a/emelyanov_artem_lab_2/app_1/Dockerfile +++ /dev/null @@ -1,17 +0,0 @@ -# Используем базовый образ с установленной JDK -FROM openjdk:17-jdk-slim - -# Создаем директорию для исходных файлов -RUN mkdir /var/data - -# Создаем директорию для приложения -WORKDIR /app - -#Копируем исходные файлы приложения внутрь контейнера -COPY src /app/src - -#Компилируем код -RUN javac /app/src/Main.java - -# Определяем команду для запуска приложения -CMD ["java", "-cp", "/app/src", "Main"] \ No newline at end of file diff --git a/emelyanov_artem_lab_2/app_1/src/Main.java b/emelyanov_artem_lab_2/app_1/src/Main.java deleted file mode 100644 index e071e91..0000000 --- a/emelyanov_artem_lab_2/app_1/src/Main.java +++ /dev/null @@ -1,64 +0,0 @@ -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.StandardCopyOption; - -public class Main { - - public static void main(String[] args) { - - /* - Ищет в каталоге /var/data самый большой по объёму файл и перекладывает его в /var/result/data.txt. - */ - - File sourceDir = new File("/var/data"); - File targetFile = new File("/var/result/data.txt"); - - // Проверяем, что sourceDir существует и является директорией - if (!sourceDir.exists() || !sourceDir.isDirectory()) { - System.out.println("Каталог " + sourceDir + " не существует или не является директорией."); - return; - } - - File[] files = sourceDir.listFiles(); - if (files == null || files.length == 0) { - System.out.println("Каталог " + sourceDir + " пуст."); - return; - } - - long maxFileSize = -1L; - File maxFile = null; - - // Находим файл с максимальным размером - for (File item : files) { - if (item.isFile() && item.length() > maxFileSize) { - maxFileSize = item.length(); - maxFile = item; - } - } - - if (maxFile != null) { - // Проверяем, существует ли конечная директория, если нет — создаем её - File targetDir = targetFile.getParentFile(); - if (!targetDir.exists()) { - boolean dirCreated = targetDir.mkdirs(); - if (dirCreated) { - System.out.println("Директория " + targetDir + " была успешно создана."); - } else { - System.out.println("Не удалось создать директорию " + targetDir); - return; - } - } - - try { - // Копируем файл - Files.copy(maxFile.toPath(), targetFile.toPath(), StandardCopyOption.REPLACE_EXISTING); - System.out.println("Самый большой файл: " + maxFile.getName() + " был скопирован в /var/result/data.txt"); - } catch (IOException e) { - System.out.println("Ошибка копирования файла: " + e.getMessage()); - } - } else { - System.out.println("Файлы для копирования не найдены."); - } - } -} \ No newline at end of file diff --git a/emelyanov_artem_lab_2/app_2/.gitignore b/emelyanov_artem_lab_2/app_2/.gitignore deleted file mode 100644 index 1c5e2ec..0000000 --- a/emelyanov_artem_lab_2/app_2/.gitignore +++ /dev/null @@ -1,30 +0,0 @@ -### IntelliJ IDEA ### -out/ -!**/src/main/**/out/ -!**/src/test/**/out/ - -### Eclipse ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache -bin/ -!**/src/main/**/bin/ -!**/src/test/**/bin/ - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ - -### VS Code ### -.vscode/ - -### Mac OS ### -.DS_Store -/.idea/misc.xml diff --git a/emelyanov_artem_lab_2/app_2/.idea/.gitignore b/emelyanov_artem_lab_2/app_2/.idea/.gitignore deleted file mode 100644 index 7c5452a..0000000 --- a/emelyanov_artem_lab_2/app_2/.idea/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Editor-based HTTP Client requests -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml -/modules.xml -/vcs.xml diff --git a/emelyanov_artem_lab_2/app_2/Dockerfile b/emelyanov_artem_lab_2/app_2/Dockerfile deleted file mode 100644 index 69b918c..0000000 --- a/emelyanov_artem_lab_2/app_2/Dockerfile +++ /dev/null @@ -1,17 +0,0 @@ -# Используем базовый образ с установленной JDK -FROM openjdk:17-jdk-slim - -# Создаем директорию для исходных файлов -RUN mkdir /var/data - -# Создаем директорию для приложения -WORKDIR /app - -#Копируем исходные файлы приложения внутрь контейнера -COPY src /app/src - -#Компилируем код -RUN javac /app/src/Main.java - -# Определяем команду для запуска приложения -CMD ["java", "-cp", "/app/src", "Main"] diff --git a/emelyanov_artem_lab_2/app_2/src/Main.java b/emelyanov_artem_lab_2/app_2/src/Main.java deleted file mode 100644 index 2d7b837..0000000 --- a/emelyanov_artem_lab_2/app_2/src/Main.java +++ /dev/null @@ -1,46 +0,0 @@ -import java.io.File; -import java.io.FileNotFoundException; -import java.io.PrintWriter; -import java.util.Scanner; - -public class Main { - - // Сохраняет произведение первого и последнего числа из файла /var/result/data.txt в /var/result/result.txt. - public static void main(String[] args) { - - File sourceFile = new File("/var/result/data.txt"); - File targetFile = new File("/var/result/result.txt"); - - int firstNumber = 0; - int lastNumber = 0; - boolean isFirstNumber = true; - - try (Scanner scanner = new Scanner(sourceFile)) { - // Считываем числа - while (scanner.hasNextInt()) { - int currentNumber = scanner.nextInt(); - - if (isFirstNumber) { - firstNumber = currentNumber; // Сохраняем первое число - isFirstNumber = false; - } - - lastNumber = currentNumber; // Последнее число обновляется на каждом шаге - } - } catch (FileNotFoundException ex) { - System.out.println("Файл не найден: " + ex.getMessage()); - return; // Выходим, если файл не найден - } - - // Рассчитываем произведение первого и последнего числа - int result = firstNumber * lastNumber; - - // Сохраняем результат в файл - try (PrintWriter writer = new PrintWriter(targetFile)) { - writer.println(result); - System.out.println("Произведение первого и последнего числа: " + result); - } catch (FileNotFoundException ex) { - System.out.println("Ошибка записи в файл: " + ex.getMessage()); - } - } -} diff --git a/emelyanov_artem_lab_2/data/1.txt b/emelyanov_artem_lab_2/data/1.txt deleted file mode 100644 index 2988c8b..0000000 --- a/emelyanov_artem_lab_2/data/1.txt +++ /dev/null @@ -1,10 +0,0 @@ -2 -32 -1 -2 -3 -54 -64 -4 -3 -3 \ No newline at end of file diff --git a/emelyanov_artem_lab_2/data/2.txt b/emelyanov_artem_lab_2/data/2.txt deleted file mode 100644 index 4eb4b6f..0000000 --- a/emelyanov_artem_lab_2/data/2.txt +++ /dev/null @@ -1,12 +0,0 @@ -12 -4 -12 -3 -21 -3 -12 -1 -3 -32 -2 -5 \ No newline at end of file diff --git a/emelyanov_artem_lab_2/data/3.txt b/emelyanov_artem_lab_2/data/3.txt deleted file mode 100644 index 36ee730..0000000 --- a/emelyanov_artem_lab_2/data/3.txt +++ /dev/null @@ -1,9 +0,0 @@ -12 -2 -1 -2 -4 -3 -1 -2 -3 \ No newline at end of file diff --git a/emelyanov_artem_lab_2/docker-compose.yml b/emelyanov_artem_lab_2/docker-compose.yml deleted file mode 100644 index 0ed51ed..0000000 --- a/emelyanov_artem_lab_2/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -version: '3' -services: - file-finder: - build: - context: ./app_1 # Путь к первому приложению - dockerfile: Dockerfile - volumes: - - C:/Users/Admin/Desktop/УлГТУ/Распределенные вычисления и приложения/DAS_2024_1/emelyanov_artem_lab_2/data:/var/data # Монтируем директорию с файлами - - shared-result:/var/result - - number-processor: - build: - context: ./app_2 # Путь ко второму приложению - dockerfile: Dockerfile - depends_on: - - file-finder - volumes: - - shared-result:/var/result - -volumes: - shared-result: # Объявляем общий том 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/mochalov_danila_lab_1/LocalSettings.php b/mochalov_danila_lab_1/LocalSettings.php deleted file mode 100644 index 9644427..0000000 --- a/mochalov_danila_lab_1/LocalSettings.php +++ /dev/null @@ -1,140 +0,0 @@ - "$wgResourceBasePath/resources/assets/change-your-logo.svg", - 'icon' => "$wgResourceBasePath/resources/assets/change-your-logo-icon.svg", -]; - -## UPO means: this is also a user preference option - -$wgEnableEmail = true; -$wgEnableUserEmail = true; # UPO - -$wgEmergencyContact = ''; -$wgPasswordSender = ''; - -$wgEnotifUserTalk = false; # UPO -$wgEnotifWatchlist = false; # UPO -$wgEmailAuthentication = true; - -## Database settings -$wgDBtype = 'mysql'; -$wgDBserver = 'mariadb'; -$wgDBname = 'my_wiki'; -$wgDBuser = 'wikiuser'; -$wgDBpassword = 'password'; - -# MySQL specific settings -$wgDBprefix = ""; -$wgDBssl = false; - -# MySQL table options to use during installation or update -$wgDBTableOptions = "ENGINE=InnoDB, DEFAULT CHARSET=binary"; - -# Shared database table -# This has no effect unless $wgSharedDB is also set. -$wgSharedTables[] = "actor"; - -## Shared memory settings -$wgMainCacheType = CACHE_NONE; -$wgMemCachedServers = []; - -## To enable image uploads, make sure the 'images' directory -## is writable, then set this to true: -$wgEnableUploads = false; -$wgUseImageMagick = true; -$wgImageMagickConvertCommand = '/usr/bin/convert'; - -# InstantCommons allows wiki to use images from https://commons.wikimedia.org -$wgUseInstantCommons = false; - -# Periodically send a pingback to https://www.mediawiki.org/ with basic data -# about this MediaWiki instance. The Wikimedia Foundation shares this data -# with MediaWiki developers to help guide future development efforts. -$wgPingback = false; - -# Site language code, should be one of the list in ./includes/languages/data/Names.php -$wgLanguageCode = 'ru'; - -# Time zone -$wgLocaltimezone = 'UTC'; - -## Set $wgCacheDirectory to a writable directory on the web server -## to make your wiki go slightly faster. The directory should not -## be publicly accessible from the web. -#$wgCacheDirectory = "$IP/cache"; - -$wgSecretKey = '35e36bd38120ddaa8ba6e353d81951b7b85c7be00e0ee915c4bb4bfa44477368'; - -# Changing this will log out all existing sessions. -$wgAuthenticationTokenVersion = '1'; - -# Site upgrade key. Must be set to a string (default provided) to turn on the -# web installer while LocalSettings.php is in place -$wgUpgradeKey = '698fd18eabeec460'; - -## For attaching licensing metadata to pages, and displaying an -## appropriate copyright notice / icon. GNU Free Documentation -## License and Creative Commons licenses are supported so far. -$wgRightsPage = ""; # Set to the title of a wiki page that describes your license/copyright -$wgRightsUrl = ''; -$wgRightsText = ''; -$wgRightsIcon = ""; - -# Path to the GNU diff3 utility. Used for conflict resolution. -$wgDiff3 = '/usr/bin/diff3'; - -## Default skin: you can change the default skin. Use the internal symbolic -## names, e.g. 'vector' or 'monobook': -$wgDefaultSkin = 'vector-2022'; - -# Enabled skins. -# The following skins were automatically enabled: -wfLoadSkin( 'MinervaNeue' ); -wfLoadSkin( 'MonoBook' ); -wfLoadSkin( 'Timeless' ); -wfLoadSkin( 'Vector' ); - - -# End of automatically generated settings. -# Add more configuration options below. - diff --git a/mochalov_danila_lab_1/README.md b/mochalov_danila_lab_1/README.md deleted file mode 100644 index 2d59f12..0000000 --- a/mochalov_danila_lab_1/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# Лабораторная работа №1 - -## Описание -Для выполнения данной лабораторной работы были развернуты следующие сервисы: - - mediawiki - Вики-движок; - - mariadb - БД для сервиса mediawiki; - - drupal - Система управления контентом; - - postgres - БД для сервиса drupal. - -В файле docker-compose прописаны инструкции для запуска четырех контейнеров с сервисами. -Для пояснения инструкций для каждой строки добавлены комментарии с объяснением. - -## Запуск -Для запуска необходимо перейти в папку с файлом docker-compose и ввести команду в терминале -``` -docker compose up -d -``` -Флаг -d позволяет запустить контейнеры в фоновом режиме, оставляя доступ к консоли. - -Для полноценного первого запуска сервиса drupal необходимо открыть его веб-клиент и следовать инструкциям. -Для полноценного первого запуска сервиса mediawiki необходимо открыть его веб-клиент после запуска и следовать инструкциям по настройке. -После получения файла LocalSettings.php необходимо: - - расскоментировать строчку ./LocalSettings.php:/var/www/html/LocalSettings.php в docker-compose - - перенести файл в директорию с файлом docker-compose и перезапустить контейнер. - -Для проверки контейнеров после запуска можно использовать команду -``` -docker ps -a -``` -В случае если все контейнеры успешно запущены мы увидим в их в консоли со статусом Up -``` -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -e86a2cd3b071 mediawiki "docker-php-entrypoi…" 42 seconds ago Up 39 seconds 0.0.0.0:8080->80/tcp mochalov_danila_lab_1-mediawiki-1 -260ca4b612fe postgres:16 "docker-entrypoint.s…" 42 seconds ago Up 41 seconds 5432/tcp mochalov_danila_lab_1-postgres-1 -1fbd6c3922e2 mariadb "docker-entrypoint.s…" 42 seconds ago Up 41 seconds 3306/tcp mochalov_danila_lab_1-mariadb-1 -a7d4e194a30a drupal:10-apache "docker-php-entrypoi…" 42 seconds ago Up 40 seconds 0.0.0.0:3000->80/tcp mochalov_danila_lab_1-drupal-1 -``` - -## Демонстрация работы -Для демонстрации работоспособности записан ролик. Доступ по [ссылке] (https://drive.google.com/file/d/1GkJSwaoSUjggKQIRJlNQtJ12QEDtium6/view?usp=sharing) diff --git a/mochalov_danila_lab_1/docker-compose.yml b/mochalov_danila_lab_1/docker-compose.yml deleted file mode 100644 index d977dcb..0000000 --- a/mochalov_danila_lab_1/docker-compose.yml +++ /dev/null @@ -1,52 +0,0 @@ -services: - mediawiki: # Сервис MediaWiki - image: mediawiki # Образ MediaWiki из Docker Hub - restart: always # Автоматический перезапуск контейнера при сбое - ports: - - 8080:80 # Проброс порта 80 из контейнера на порт 8080 хоста - depends_on: - - mariadb # Запуск MediaWiki только после запуска MariaDB - volumes: - - images:/var/www/html/images # Монтирование volume для хранения данных - - ./LocalSettings.php:/var/www/html/LocalSettings.php # Монтирование локального файла настроек (ЗАКОММЕНТИРОВАТЬ ДО НАСТРОЙКИ) - - mariadb: # Сервис MariaDB - image: mariadb # Образ MariaDB из Docker Hub - restart: always # Автоматический перезапуск контейнера при сбое - environment: # Переменные окружения для настройки базы данных - MYSQL_DATABASE: my_wiki # Название базы данных - MYSQL_USER: wikiuser # Имя пользователя для доступа к базе данных - MYSQL_PASSWORD: password # Пароль для пользователя - MYSQL_RANDOM_ROOT_PASSWORD: 'yes' # Случайный пароль для пользователя root - volumes: - - db_maria:/var/lib/mysql # Монтирование volume для хранения данных базы - - drupal: # Сервис Drupal - image: drupal:10-apache # Образ Drupal - ports: - - 3000:80 # Проброс порта 80 из контейнера на порт 3000 хоста - volumes: # Монтирование volumes для хранения локальных файлов Drupal - - drupal-modules:/var/www/html/modules - - drupal-profiles:/var/www/html/profiles - - drupal-themes:/var/www/html/themes - - drupal-sites:/var/www/html/sites - restart: always # Автоматический перезапуск контейнера при сбое - depends_on: - - postgres # Запуск Drupal только после запуска Postgres - - postgres: # Сервис PostgreSQL - image: postgres:16 # Образ PostgreSQL - environment: - POSTGRES_PASSWORD: password # Пароль для пользователя postgres - restart: always # Автоматический перезапуск контейнера при сбое - volumes: - - db_postgres:/var/lib/postgresql # Монтирование volume для хранения данных базы - -volumes: - images: # Volume для хранения изображений MediaWiki - db_maria: # Volume для хранения данных MariaDB - db_postgres: # Volume для хранения данных Postgres - drupal-modules: # Volumes для хранения локальных данных Drupal - drupal-profiles: # Volumes для хранения локальных данных Drupal - drupal-themes: # Volumes для хранения локальных данных Drupal - drupal-sites: # Volumes для хранения локальных данных Drupal diff --git a/polevoy_sergey_lab_1/docker-compose.yml b/polevoy_sergey_lab_1/docker-compose.yml deleted file mode 100644 index 9fc0f0d..0000000 --- a/polevoy_sergey_lab_1/docker-compose.yml +++ /dev/null @@ -1,42 +0,0 @@ -services: # Начало объявления сервисов - gitea: # Указывается название сервиса - image: gitea/gitea:1.22.2 # Указание названия образа (и/или его версии), который будет взят для создания контейнера - restart: always # Указывается политика перезапуска, в данном случае всегда перезапускать контейнер, если он остановился - environment: # Указываются переменные среды - - GITEA__database__DB_TYPE=postgres # Тип базы данных - - GITEA__database__HOST=postgres:5432 # Хост бд. Название сервиса это а-ля доменное имя и внутри сети разрешается в ip нужного контейнера - - GITEA__database__NAME=gitea # Название базы данных - - GITEA__database__USER=superuser # Пользователь базы данных - - GITEA__database__PASSWD=superpassword # Пароль пользователя базы данных - ports: # Перечисляются пробросы портов на хостовую машину. Слева порт хостовой машины, справа порт контейнера - - "3000:3000" # Web интерфейс - - "222:22" # SSH - volumes: # Указываются монтированные тома, папки, файлы. В данном случае в папку /data монтируется объявленный ниже том gitea - - gitea:/data - depends_on: # Указывается зависимость запуска контейнера от другого сервиса, в данном случае запускается только после запуска сервиса бд - - postgres - # Дальше всё по аналогии, различаются лишь названия, переменные окружения, образы, порты и тома - postgres: - image: postgres:14 - restart: always - environment: - - POSTGRES_USER=superuser - - POSTGRES_PASSWORD=superpassword - - POSTGRES_DB=gitea - ports: - - "5432:5432" - volumes: - - postgres:/var/lib/postgresql/data - - rabbitmq: - image: rabbitmq:3-management - environment: - RABBITMQ_DEFAULT_USER: superuser - RABBITMQ_DEFAULT_PASS: superpassword - ports: - - "5672:5672" - - "15672:15672" - -volumes: # Перечисление томов, которые можно использовать как в одном, так и в нескольких сервисах - postgres: - gitea: \ No newline at end of file diff --git a/polevoy_sergey_lab_1/readme.md b/polevoy_sergey_lab_1/readme.md deleted file mode 100644 index a8aae30..0000000 --- a/polevoy_sergey_lab_1/readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# Лабораторная работа №1 -В рамках данной лабораторной работы будут развёрнуты следующие сервисы: -1. **Gitea** - система управления версиями -2. **Postgres** - реляционая база данных -3. **Rabbitmq** - брокер сообщений - -Инструкции к запуску контейнеров и пояснения к ним находятся в файле ```docker-compose.yml``` - -## Порядок запуска -#### 1. Установить docker или убедиться, что он установлен -#### 2. Перейти в папку с файлом ```docker-compose.yml``` -#### 3. Выполнить команду в терминале: ```docker-compose up --build --remove-orphans``` - -Проверить успешность запуска можно командой ```docker ps -a```. Если всё прошло успешно, то в терминале будет написано: -``` -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -1a794331b32b gitea/gitea:1.22.2 "/usr/bin/entrypoint…" 20 seconds ago Up 18 seconds 0.0.0.0:3000->3000/tcp, 0.0.0.0:222->22/tcp polevoy_sergey_lab_1-gitea-1 -b5fe33c61c1d rabbitmq:3-management "docker-entrypoint.s…" 20 seconds ago Up 19 seconds 4369/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp, 15671/tcp, 15691-15692/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp rabbitmq -3d2db73d15c5 postgres:14 "docker-entrypoint.s…" 20 seconds ago Up 19 seconds 0.0.0.0:5432->5432/tcp polevoy_sergey_lab_1-postgres-1 -``` - -Работать со всеми перечисленными сервисами можно сразу после запуска за исключением **gitea**. После первого запуска необходимо зайти на сервис, выполнить первоначальную настройку и создать суперпользователя. - -## Видеодемонстрация работы -### Видео доступно по [ссылке](https://disk.yandex.ru/i/3Out4mUV6NEJuA) \ 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_1/.env b/tukaeva_alfiya_lab_1/.env deleted file mode 100644 index b022097..0000000 --- a/tukaeva_alfiya_lab_1/.env +++ /dev/null @@ -1,4 +0,0 @@ -DB_HOST = wp_database -DB_USER = wordpress -DB_PASSWORD = wordpress -DB_NAME = wordpress \ No newline at end of file diff --git a/tukaeva_alfiya_lab_1/Dockerfile b/tukaeva_alfiya_lab_1/Dockerfile deleted file mode 100644 index 2850456..0000000 --- a/tukaeva_alfiya_lab_1/Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -FROM wordpress:latest - -# Установка WP-CLI -RUN apt-get update && apt-get install -y less \ - && curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \ - && chmod +x wp-cli.phar \ - && mv wp-cli.phar /usr/local/bin/wp - -# Копируем скрипт entrypoint -COPY entrypoint.sh /usr/local/bin/entrypoint.sh -RUN chmod +x /usr/local/bin/entrypoint.sh - -ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] \ No newline at end of file diff --git a/tukaeva_alfiya_lab_1/README.md b/tukaeva_alfiya_lab_1/README.md deleted file mode 100644 index 5dff343..0000000 --- a/tukaeva_alfiya_lab_1/README.md +++ /dev/null @@ -1,137 +0,0 @@ -# Лабораторная работа №1 - Знакомство с docker и docker-compose - -## Задание - -Нужно развернуть 3 сервиса в контейнерах docker через docker-compose. - -Необходимые требования: - -* Несколько контейнеров. -* Хотя бы один volume. -* Хотя бы один порт, проброшенный на хост. -* Разворачивание системы должно пройти до конца. - -## Запуск ЛР: - -Введем в терминале команду: -``` -docker-compose up -d -``` -## Использованные сервисы: - - 1. ```db``` - база данные MySQL - - 2. ```redmine``` - Система учёта багов, т.е. баг-трекер. - - 3. ```mediawiki``` - движок вики - - 4. ```wordpress``` - платформа для управления контентом - -## Описание программы: - -Развернутые сервисы: - -### wordpress - -``` -wordpress: # Определение сервиса WordPress - image: wordpress:latest # Используемый образ WordPress последней версии - containername: wp_app # Имя контейнера - restart: always - ports: # Настройка портов - - "8000:80" - environment: # Переменные окружения - WORDPRESSDBHOST: ${DBHOST} - WORDPRESSDBUSER: ${DBUSER} - WORDPRESSDBPASSWORD: ${DBPASSWORD} - WORDPRESSDBNAME: ${DBNAME} - WORDPRESSADMINUSER: admin - WORDPRESSADMINPASSWORD: adminpassword - WORDPRESSADMINEMAIL: admin@example.com - volumes: # Настройка томов - - wordpress_data:/var/www/html - dependson: # Зависимости - - db_wordpress # Зависит от сервиса MySQL - -``` -Эта строка отвечает за образ сброки: -``` -image: wordpress:latest -``` -Задание имени контейнера: -``` -containername: wp_app -``` -Проброс портов: -``` -ports: - - 8000:80 -``` -Тома для хранения данных: -``` -volumes: - - wordpress_data:/var/www/html - -``` -Переменные окружения -``` -environment: - WORDPRESSDBHOST: ${DBHOST} - WORDPRESSDBUSER: ${DBUSER} - WORDPRESSDBPASSWORD: ${DBPASSWORD} - WORDPRESSDBNAME: ${DBNAME} - WORDPRESSADMINUSER: admin - WORDPRESSADMINPASSWORD: adminpassword - WORDPRESSADMINEMAIL: admin@example.com - -``` -Зависимости - -``` -dependson: - - db_wordpress - -``` -Аналогично со другими сервисами: - -### mediawiki - -``` -mediawiki: # Определение сервиса MediaWiki - image: mediawiki:1.35 # Используемый образ MediaWiki версии 1.35 - ports: # Настройка портов - - "8080:80" - containername: mediawiki # Имя контейнера - volumes: # Настройка томов - - mediawiki_data:/var/www/html/images mediawiki: # Определение сервиса MediaWiki - image: mediawiki:1.35 # Используемый образ MediaWiki версии 1.35 - ports: # Настройка портов - - "8080:80" - containername: mediawiki # Имя контейнера - volumes: # Настройка томов - - mediawiki_data:/var/www/html/images - -``` - -### redmine - -``` - -redmine: # Определение сервиса Redmine - image: redmine:latest # Используемый образ Redmine последней версии - containername: redmine # Имя контейнера - ports: # Настройка портов - - "3000:3000" - volumes: # Настройка томов - - redmine_data:/usr/src/redmine/files - -``` - -# Скрины работы программы: - -Панель консоли -![](lab_1.png "") - -# Видео - -https://vk.com/video230744264_456239102 \ No newline at end of file diff --git a/tukaeva_alfiya_lab_1/docker-compose.yml b/tukaeva_alfiya_lab_1/docker-compose.yml deleted file mode 100644 index 681a721..0000000 --- a/tukaeva_alfiya_lab_1/docker-compose.yml +++ /dev/null @@ -1,53 +0,0 @@ -services: - mediawiki: # Определение сервиса MediaWiki - image: mediawiki:1.35 # Используемый образ MediaWiki версии 1.35 - ports: # Настройка портов - - "8080:80" - containername: mediawiki # Имя контейнера - volumes: # Настройка томов - - mediawiki_data:/var/www/html/images - - db_wordpress: # Определение сервиса MySQL для WordPress - image: mysql:5.7 # Используемый образ MySQL версии 5.7 - containername: wp_database # Имя контейнера - environment: # Переменные окружения - MYSQLROOTPASSWORD: rootsecret - MYSQLDATABASE: ${DBNAME} - MYSQLUSER: ${DBUSER} - MYSQLPASSWORD: ${DBPASSWORD} - volumes: # Настройка томов - - db_wordpress_data:/var/lib/mysql - - wordpress: # Определение сервиса WordPress - image: wordpress:latest # Используемый образ WordPress последней версии - containername: wp_app # Имя контейнера - restart: always - ports: # Настройка портов - - "8000:80" - user: www-data - environment: # Переменные окружения - WORDPRESSDBHOST: ${DBHOST} - WORDPRESSDBUSER: ${DBUSER} - WORDPRESSDBPASSWORD: ${DBPASSWORD} - WORDPRESSDBNAME: ${DBNAME} - WORDPRESSADMINUSER: admin - WORDPRESSADMINPASSWORD: adminpassword - WORDPRESSADMINEMAIL: admin@example.com - volumes: # Настройка томов - - wordpress_data:/var/www/html - dependson: # Зависимости - - db_wordpress # Зависит от сервиса MySQL - - redmine: # Определение сервиса Redmine - image: redmine:latest # Используемый образ Redmine последней версии - containername: redmine # Имя контейнера - ports: # Настройка портов - - "3000:3000" - volumes: # Настройка томов - - redmine_data:/usr/src/redmine/files - -volumes: # Определение томов - mediawiki_data: # ТОМ для MediaWiki - wordpress_data: # ТОМ для WordPress - db_wordpress_data: # ТОМ для MySQL - redmine_data: # ТОМ для Redmine \ No newline at end of file diff --git a/tukaeva_alfiya_lab_1/entrypoint.sh b/tukaeva_alfiya_lab_1/entrypoint.sh deleted file mode 100644 index 4d2aadd..0000000 --- a/tukaeva_alfiya_lab_1/entrypoint.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -set -e - -# Ожидание готовности базы данных -until wp db check; do - echo "Ожидание базы данных..." - sleep 5 -done - -# Установка WordPress -if ! wp core is-installed; then - wp core install --url="http://localhost:8000" --title="Библиотека" --admin_user="admin" --admin_password="admin_password" --admin_email="admin@example.com" --skip-email -fi - -exec apache2-foreground \ No newline at end of file diff --git a/tukaeva_alfiya_lab_1/lab_1.png b/tukaeva_alfiya_lab_1/lab_1.png deleted file mode 100644 index 48fbc48..0000000 Binary files a/tukaeva_alfiya_lab_1/lab_1.png and /dev/null 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