· 4 years ago · Jun 07, 2021, 02:16 PM
1version: "3"
2volumes:
3 dhparam: # not sure what for ;)
4 vhostd: # configuration of hosts, written by nginx-gen, used by nginx-proxy
5 html: # contains .well-known directory, written by letsencrypt, served by nginx-proxy
6
7services:
8
9 # letsencrypt pomocny kontajner
10 nginx-proxy-companion:
11 image: "jrcs/letsencrypt-nginx-proxy-companion:${NGINXPROXYLETSENCRYPTCOMPANION_TAG}"
12 restart: unless-stopped
13 volumes:
14 - ${NGINX_FILES_PATH:-./data}/conf.d:/etc/nginx/conf.d
15 - vhostd:/etc/nginx/vhost.d
16 - html:/usr/share/nginx/html
17 - ${NGINX_FILES_PATH:-./data}/certs:/etc/nginx/certs
18 - ${DOCKER_SOCK:-/var/run/docker.sock}:/var/run/docker.sock:ro
19 depends_on:
20 - nginx-proxy
21 environment:
22 - "DEFAULT_EMAIL=${ADMIN_EMAIL}"
23 - "NGINX_DOCKER_GEN_CONTAINER=${DOCKER_GEN:-nginx-gen}"
24 - "NGINX_PROXY_CONTAINER=${NGINX_WEB:-nginx-web}"
25 logging:
26 driver: "json-file"
27 options:
28 max-size: "200k"
29 max-file: "10"
30
31 # generator konfigu pre vstupne reverzne proxy
32 nginx-gen:
33 image: "jwilder/docker-gen:${NGINXPROXY_DOCKERGEN_TAG}"
34 labels:
35 com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: true
36 command: -notify-sighup ${COMPOSE_PROJECT_NAME}_nginx-proxy_1 -watch -wait 5s:30s /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf
37 restart: unless-stopped
38 volumes:
39 - ${DOCKER_SOCK:-/var/run/docker.sock}:/tmp/docker.sock:ro
40 - ${NGINX_FILES_PATH:-./data}/conf.d:/etc/nginx/conf.d
41 - vhostd:/etc/nginx/vhost.d
42 - html:/usr/share/nginx/html
43 - ${NGINX_FILES_PATH:-./data}/certs:/etc/nginx/certs:ro
44 - ${NGINX_FILES_PATH:-./data}/nginx.tmpl:/etc/docker-gen/templates/nginx.tmpl:ro
45 environment:
46 - SSL_POLICY
47 logging:
48 driver: "json-file"
49 options:
50 max-size: "10m"
51 max-file: "10"
52
53 # reverse proxy
54 nginx-proxy:
55 image: "nginx:${NGINX_TAG:-latest}"
56 restart: unless-stopped
57 ports:
58 - "0.0.0.0:80:80"
59 - "0.0.0.0:443:443"
60 depends_on:
61 - nginx-gen
62 volumes:
63 - ${NGINX_FILES_PATH:-./data}/conf.d:/etc/nginx/conf.d:ro
64 - vhostd:/etc/nginx/vhost.d:ro
65 - html:/usr/share/nginx/html:ro
66 - ${NGINX_FILES_PATH:-./data}/certs:/etc/nginx/certs:ro
67 - ${NGINX_FILES_PATH:-./data}/htpasswd:/etc/nginx/htpasswd:ro
68 links:
69 - bozp-gui
70 logging:
71 driver: "json-file"
72 options:
73 max-size: "10m"
74 max-file: "10"
75
76
77
78 bozp-mysql:
79 image: "mariadb:latest"
80 environment:
81 - MYSQL_RANDOM_ROOT_PASSWORD
82 - MYSQL_DATABASE
83 - MYSQL_USER
84 - MYSQL_PASSWORD
85 restart: unless-stopped
86 logging:
87 driver: "json-file"
88 options:
89 max-size: "10m"
90 max-file: "10"
91
92 # api kontajner (cez GUI)
93 bozp-api:
94 build: ./bozp-api
95 image: bozp-api:latest
96 restart: unless-stopped
97 links:
98 - bozp-mysql
99 depends_on:
100 - bozp-mysql
101 environment:
102 - "APP_PORT=8080"
103 - "DB_PORT=3306"
104 - "DB_HOST=bozp-mysql"
105 - "MYSQL_DB=${MYSQL_DATABASE}"
106 - "DB_USER=${MYSQL_USER}"
107 - "DB_PASS=${MYSQL_PASSWORD}"
108 - SECRET_KEY
109 logging:
110 driver: "json-file"
111 options:
112 max-size: "10m"
113 max-file: "10"
114
115 # GUI kontajner (cez vstupne reverzne proxy)
116 bozp-gui:
117 build: ./bozp-gui
118 image: bozp-gui:latest
119 restart: unless-stopped
120 links:
121 - bozp-api
122 depends_on:
123 - bozp-api
124 environment:
125 - "LETSENCRYPT_HOST=${VIRTUAL_HOST}"
126 - "VIRTUAL_HOST=${VIRTUAL_HOST}"
127 logging:
128 driver: "json-file"
129 options:
130 max-size: "10m"
131 max-file: "10"