DAS_2024_1/haliullov_kamil_lab_1
2024-11-24 19:09:55 +04:00
..
docker-compose.yml haliullov_kamil_lab_1 is ready 2024-11-24 19:09:55 +04:00
lab_1.png haliullov_kamil_lab_1 is ready 2024-11-24 19:09:55 +04:00
README.md haliullov_kamil_lab_1 is ready 2024-11-24 19:09:55 +04:00

Лабораторная работа №1 - Знакомство с docker и docker-compose

Задание

Нужно развернуть 3 сервиса в контейнерах docker через docker-compose.

Необходимые требования:

  • Несколько контейнеров.
  • Хотя бы один volume.
  • Хотя бы один порт, проброшенный на хост.
  • Разворачивание системы должно пройти до конца.

Запуск ЛР:

Введем в терминале команду:

docker-compose up -d

Использованные сервисы:

 1. db - база данные MySQL

 2. redmine - Система учёта багов, т.е. баг-трекер.

 3. gitea - Сервис для хранения репозиториев git, на котором работает этот репозиторий.

 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


gitea:
    image: gitea/gitea:latest
    container_name: gitea
    ports:
      - "8082:3000"
    environment:
      - USER_UID=1000
      - USER_GID=1000
    volumes:
      - gitea_data:/data

Скрины работы программы:

Панель консоли

Видео

https://disk.yandex.ru/i/H4_tFURvpQuqQA