Deploiement Traefik / Docker-compose
Bonjour,
J'ai deux process de build/deploy différent pour un même projet (dev et test).
Par contre je n'ai qu'un seul serveur et je souhaite pouvoir faire vivre simultanément ces deux version dans des containers Docker.
L'accès se fera par adresse IP différente (test.mydomain.com et develop.mydomain.com).
Mon pb c'est que malgrés avoir parcouru la doc de traefik je n'arrive pas à comprendre comment isoler ces containers, comment je dois gérer les labels et les networks.
Ci-dessous ma dernière tentative de config (qui bien sûr ne marche pas). Si vous avez une idée ou un tuto sur comment mettre tout ça en place, je suis preneur.
traefik TOML :
Code:
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
|
logLevel = "ERROR"
defaultEntryPoints = ["http", "https"]
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[acme]
email = "myemail@mydomain.fr"
storage = "acme.json"
entryPoint = "https"
onDemand = true
onHostRule = true
delayDontCheckDNS = 0
acmeLogging = true
[[acme.domains]]
main = "mydomain.fr"
[docker]
domain = "mydomain.fr"
endpoint = "unix:///var/run/docker.sock"
watch = true |
Fichier docker-compose de traefik
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| version: '2'
services:
proxy:
image: traefik
command: --docker --logLevel=DEBUG
networks:
- webgateway
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /dev/null:/traefik.toml
# Support SSL
# - ./config/traefik.toml:/traefik.toml
# - ./config/acme.json:/acme.json
networks:
webgateway:
driver: bridge |
Fichier docker-compose pour la branche DEVELOP
Code:
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
| version: '2'
services:
blablabla-develop:
image: registry.gitlab.com/aaaaaa/bbbbbbb/release:6.6.6
environment:
- SPRING_PROFILES_ACTIVE=develop
- SERVER_URL=http://test.mybiz.fr
- SERVER_PORT=8090
- JAVA_OPTS=-Xmx1g
- SPRING_DATASOURCE_URL=jdbc:postgresql://webapp_blablabla-db-develop_1:5432/xxxxx
- SPRING_DATASOURCE_USERNAME=xxxxxx
- SPRING_DATASOURCE_PASSWORD=xxxxxx
links:
- blablabla-db-develop
networks:
- web
- back
restart: always
labels:
- "traefik.backend=webapp_blablabla-develop_1"
- "traefik.frontend.rule=Host:develop.mydomain.fr"
- "traefik.port=8090"
blablabla-db-develop:
image: postgres
environment:
- POSTGRES_DB=xxxxx
- POSTGRES_USER=xxxxx
- POSTGRES_PASSWORD=xxxxx
volumes:
- /home/aaaaa/develop/db/app:/etc/postgresql
- /home/aaaaa/develop/db/log:/var/log/postgresql
- /home/aaaaa/develop/db/lib:/var/lib/postgresql
- /home/aaaaa/develop/db/lib/data:/var/lib/postgresql/data
restart: always
networks:
- back
labels:
- "traefik.enable=false"
networks:
web:
external:
name: traefik_webgateway
back:
driver: bridge |
Fichier docker-compose pour la branch de test :
Code:
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
| version: '2'
services:
blablabla-test:
image: registry.gitlab.com/aaaaaa/bbbbbbb/release:6.6.6
environment:
- SPRING_PROFILES_ACTIVE=develop
- SERVER_URL=http://test.mydomain.fr
- SERVER_PORT=8090
- JAVA_OPTS=-Xmx1g
- SPRING_DATASOURCE_URL=jdbc:postgresql://webapp_blablabla-db-test_1:5432/xxxxx
- SPRING_DATASOURCE_USERNAME=xxxxxx
- SPRING_DATASOURCE_PASSWORD=xxxxxx
links:
- blablabla-db-test
networks:
- web
- back
restart: always
labels:
- "traefik.backend=webapp_blablabla-test_1"
- "traefik.frontend.rule=Host:test.mydomain.fr"
- "traefik.port=8090"
blablabla-db-test:
image: postgres
environment:
- POSTGRES_DB=xxxxx
- POSTGRES_USER=xxxxx
- POSTGRES_PASSWORD=xxxxx
volumes:
- /home/aaaaa/test/db/app:/etc/postgresql
- /home/aaaaa/test/db/log:/var/log/postgresql
- /home/aaaaa/test/db/lib:/var/lib/postgresql
- /home/aaaaa/test/db/lib/data:/var/lib/postgresql/data
restart: always
networks:
- back
labels:
- "traefik.enable=false"
networks:
web:
external:
name: traefik_webgateway
back:
driver: bridge |
Merci d'avance pour votre retour !