-
Notifications
You must be signed in to change notification settings - Fork 3
/
docker-compose.yaml
63 lines (60 loc) · 3.92 KB
/
docker-compose.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# Версия docker-compose, для которой написан и протестирован данный сценарий
# существенно отличаются мажорные версии 2.х и 3.х, поэтому можно указывать
# version: "3"
version: "3.7"
# Описание всех контейнеров, которые нужно запустить
services:
# Первый контейнер. Это и есть NGINX http сервер Наименование "web" выбрано
# произвольно и будет использоваться как адрес во внутренней сети docker
# и ссылка для других контейнеров
web:
# Для запуска контейнера необходимо загрузить и запустить именованный
# образ "nginx:1.19.0" из регистра по умолчанию (DockerHub)
image: nginx:1.19.0
# "Откроем" порт 80 контейнера на порте 8081 хоста. Синтаксис команды:
# список строк, начинающихся с "-" с парами номеров портов через ":"
# - <порт хоста>:<порт контейнера>
#...
ports:
- 80:80
- 443:443
# Смонтированные тома файловой системы
# - <хост>:<контейнер>
volumes:
- ./conf.d:/etc/nginx/conf.d/
- ./public:/public/
# Путь к ключу шифрования протокола Диффи-Хеллмана
- ./dhparam:/etc/nginx/dhparam
# Директория certbot с полученным SSL сертификатом
- ./certbot/conf/:/etc/nginx/ssl/
# Директория certbot с файлами подтверждения владения доменом
- ./certbot/data:/usr/share/nginx/html/letsencrypt
# Контейнер приложения получения/обновления SSL сертификатов
certbot:
# Образ приложения из DockerHub
image: certbot/certbot:v1.5.0
# Команда, выполняемая после запуска контейнера
command: certonly --webroot --webroot-path=/usr/share/nginx/html/letsencrypt --email admin@email.com --agree-tos --no-eff-email -d dartservice.ru
# Смонтированные тома файловой системы
# - <хост>:<контейнер>
volumes:
# Рабочая директория certbot здесь находятся ключи, сертификаты, сведения
# о домене, конфигурация, задания, выполняемые при смене сертификата и пр.
- ./certbot/conf/:/etc/letsencrypt
# Логи работы certbot
- ./certbot/logs/:/var/log/letsencrypt
# Файлы подтверждения владения доменом, их необходимо сделать доступными по
# http://dartservice.ru/.well-known/acme-challenge/
- ./certbot/data:/usr/share/nginx/html/letsencrypt
# Контейнер приложения
data_app:
# Собрать Docker образ в папке ./data_app/ Будет использован Dockerfile
# находящийся в корне этой папки
build: ./data_app/
# Файл с переменными конфигурации, которые будут записаны при запуске
# ОС в контейнере (можно передать переменные и просто в этом сценарии,
# но лучше конфиг запуска поместить в отдельный файл)
env_file:
- data_app.env
# Команда запуска приложения внутри контейнера
command: pub run aqueduct:aqueduct serve --port 8081 --isolates 1