DAS_2023_1/romanova_adelina_lab_1
2023-11-22 20:17:45 +04:00
..
docker-compose.yml romanova_adelina_lab_1 is ready 2023-11-22 20:17:45 +04:00
docker.png romanova_adelina_lab_1 is ready 2023-11-22 20:17:45 +04:00
README.md romanova_adelina_lab_1 is ready 2023-11-22 20:17:45 +04:00

Лабораторная работа №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

Скриншот работы

Запущенный контейнер в Docker

Youtube

https://youtu.be/slOXP6pHBsM