Skip to content

Instantly share code, notes, and snippets.

@back-2-95
Last active July 5, 2020 13:20
Show Gist options
  • Save back-2-95/3fe30a9fe538d3abb1198aa6ed766559 to your computer and use it in GitHub Desktop.
Save back-2-95/3fe30a9fe538d3abb1198aa6ed766559 to your computer and use it in GitHub Desktop.
Local development support for Traefik v1 and v2 in the same project
version: '3.7'
services:
app:
labels:
# Traefik 2 labels, note that I point to container_name of app service with ${COMPOSE_PROJECT_NAME}-app.
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}-app.entrypoints=https"
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}-app.rule=Host(`${APP_HOSTNAME}`)"
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}-app.tls=true"
- "traefik.http.services.${COMPOSE_PROJECT_NAME}-app.loadbalancer.server.port=8080"
- "traefik.docker.network=my-network"
version: '3.7'
services:
app:
hostname: "${APP_HOSTNAME}"
container_name: "${COMPOSE_PROJECT_NAME}-app"
image: "${APP_IMAGE}"
volumes:
- .:/app:delegated
environment:
APP_ENV: "${APP_ENV}"
networks:
- internal
- my-network
labels:
# Shared label for both Traefik 1 and 2
traefik.enable: true
# Traefik 1 labels
traefik.port: 8080
traefik.frontend.rule: "Host:${APP_HOSTNAME}"
traefik.frontend.redirect.entryPoint: https
db:
container_name: "${COMPOSE_PROJECT_NAME}-db"
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
ports:
- 3306
networks:
- internal
networks:
internal:
external: false
my-network:
external: true
volumes:
db_data:
@back-2-95
Copy link
Author

back-2-95 commented May 2, 2020

Traefik v1.7 or v2.2 is running on the same network (my-network).

Labels can be also in the same file but then they need to be written in following format:

labels:
  - "laber_name=label_value"

instead of

labels:
  laber_name: "label_value"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment