3.5 KiB
3.5 KiB
Лабораторная работа №1 - Знакомство с docker и docker-compose
Задание
Разверните 3 сервиса на выбор в контейнерах docker с помощью docker-compose, учитывая следующие требования:
- Несколько контейнеров.
- Хотя бы один volume.
- Хотя бы один порт, проброшенный на хост.
- Разворачивание системы должно пройти до конца.
Запуск
Введение в терминале команды:
docker-compose up -d
Выбранные сервисы
1. mysql
- система для создания БД
2. drupal
- популярная система управления контентом
3. gitea
- сервис для хранения репозиториев git, на котором работает этот репозиторий
4. wordpress
- платформа для управления контентом
Описание работы:
Были развёрнуты следующие сервисы:
Drupal
drupal:
depends_on:
- mysql
image: drupal
container_name: my-drupal-container
ports:
- 8084:80
volumes:
- ./drupal-modules:/var/www/html/modules
- ./drupal-profiles:/var/www/html/profiles
- ./drupal-themes:/var/www/html/themes
environment:
- DRUPAL_DB_HOST=mysql
- DRUPAL_DB_USER=wiki_user
- DRUPAL_DB_PASSWORD=my_secret_password
- DRUPAL_DB_NAME=my_wiki
Этот код представляет собой часть файла конфигурации Docker Compose
, который используется для управления многоконтейнерными приложениями в Docker.
Объяснение работы кода:
Эта строка отвечает за образ сброки:
image: drupal
Задание имени контейнера:
container_name: my-drupal-container
Проброс портов:
ports:
- 8084:80
Тома для хранения данных:
volumes:
- ./drupal-modules:/var/www/html/modules
- ./drupal-profiles:/var/www/html/profiles
- ./drupal-themes:/var/www/html/themes
Переменные окружения для Drupal
environment:
- DRUPAL_DB_HOST=mysql
- DRUPAL_DB_USER=wiki_user
- DRUPAL_DB_PASSWORD=my_secret_password
- DRUPAL_DB_NAME=my_wiki
Аналогично со следующими сервисами:
Gitea
depends_on:
- mysql
image: gitea/gitea
container_name: my-gitea-container
ports:
- 8085:3000
volumes:
- ./gitea:/data
environment:
- USER_UID=1000
- USER_GID=1000
- DB_TYPE=mysql
- DB_HOST=mysql:3306
- DB_NAME=my_wiki
- DB_USER=wiki_user
- DB_PASSWORD=my_secret_password
- ROOT_URL=http://localhost:8085
Wordpress
depends_on:
- mysql
image: wordpress
container_name: my-wordpress-container
ports:
- 8086:80
volumes:
- ./wp-content:/var/www/html/wp-content
environment:
- WORDPRESS_DB_HOST=mysql
- WORDPRESS_DB_USER=wiki_user
- WORDPRESS_DB_PASSWORD=my_secret_password
- WORDPRESS_DB_NAME=my_wiki