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 :
Fichier docker-compose de traefik
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 pour la branche DEVELOP
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 branch de test :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Merci d'avance pour votre retour !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager