Files
semaphore/portainer-traefik-agent.yml
2024-07-13 19:15:56 +02:00

112 lines
3.4 KiB
YAML

version: '3.2'
services:
traefik:
image: "traefik:latest"
command:
- --entrypoints.web.address=:80
- --entrypoints.websecure.address=:443
- --providers.docker=true
- --providers.swarm=true
- --providers.docker.exposedbydefault=false
- --providers.docker.network=public
- --api=true
- --api.dashboard=true
- --api.insecure=true
- --log.level=DEBUG
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.role == manager]
labels:
- "traefik.http.routers.dashboard.rule=Host(`traefik.test.com`)"
- "traefik.http.routers.dashboard.service=api@internal"
- "traefik.http.services.dashboard.loadbalancer.server.port=8080"
tls:
certificates:
- certFile: /certificates/jingoh.private.crt
keyFile: /certificates/jingoh.private.key
ports:
- target: 80
published: 80
mode: host
- target: 443
published: 443
mode: host
networks:
- public
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- traefik-public-certificates:/certificates
agent:
image: portainer/agent:latest
environment:
# REQUIRED: Should be equal to the service name prefixed by "tasks." when
# deployed inside an overlay network
AGENT_CLUSTER_ADDR: tasks.agent
# AGENT_PORT: 9001
# LOG_LEVEL: debug
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/volumes:/var/lib/docker/volumes
networks:
- agent_network
deploy:
mode: global
placement:
constraints: [node.platform.os == linux]
portainer:
image: portainer/portainer-ce:latest
command: -H tcp://tasks.agent:9001 --tlsskipverify --http-enabled
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- data:/data
- /etc/localtime:/etc/localtime
networks:
- public
- agent_network
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.role == manager]
labels:
- "traefik.enable=true"
- "traefik.http.routers.portainer.rule=Host(`portainer.jingoh.private.com`)"
- "traefik.http.routers.portainer.entrypoints=websecure"
- "traefik.http.routers.portainer.service=portainer"
- "traefik.http.services.portainer.loadbalancer.server.port=9443"
- "traefik.http.routers.portainer.tls=true"
# Edge
- "traefik.http.routers.edge.rule=Host(`edge.private.com`)"
- "traefik.http.routers.edge.entrypoints=websecure"
- "traefik.http.services.edge.loadbalancer.server.port=8000"
- "traefik.http.routers.edge.service=edge"
- "traefik.http.routers.edge.tls=true"
whoami:
image: "traefik/whoami"
deploy:
labels:
- "traefik.enable=true"
- "traefik.http.routers.whoami.rule=Host(`whoamitest.jingoh.private`)"
- "traefik.http.routers.whoami.entrypoints=web"
- "traefik.http.services.whoami.loadbalancer.server.port=80"
- "traefik.http.routers.whoami-secured.rule=Host(`whoamitest.jingoh.private`)"
- "traefik.http.routers.whoami-secured.entrypoints=websecure"
- traefik.docker.network=public
networks:
- public
networks:
public:
external: true
agent_network:
external: true
attachable: true
volumes:
data:
traefik-public-certificates: