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 : 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 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
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 : 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
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-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 !