53 lines
1.5 KiB
YAML
53 lines
1.5 KiB
YAML
version: '3.3'
|
|
|
|
services:
|
|
agent:
|
|
image: portainer/agent:2.9.3
|
|
environment:
|
|
AGENT_CLUSTER_ADDR: tasks.agent
|
|
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:2.9.3
|
|
command: -H tcp://tasks.agent:9001 --tlsskipverify
|
|
volumes:
|
|
- portainer-data:/data
|
|
networks:
|
|
- agent-network
|
|
- traefik-public
|
|
deploy:
|
|
placement:
|
|
constraints:
|
|
- node.role == manager
|
|
- node.labels.portainer.portainer-data == true
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.docker.network=traefik-public
|
|
- traefik.constraint-label=traefik-public
|
|
- traefik.http.routers.portainer-http.rule=Host(`${DOMAIN?Variable not set}`)
|
|
- traefik.http.routers.portainer-http.entrypoints=http
|
|
- traefik.http.routers.portainer-http.middlewares=https-redirect
|
|
- traefik.http.routers.portainer-https.rule=Host(`${DOMAIN?Variable not set}`)
|
|
- traefik.http.routers.portainer-https.entrypoints=https
|
|
- traefik.http.routers.portainer-https.tls=true
|
|
- traefik.http.routers.portainer-https.tls.certresolver=le
|
|
- traefik.http.services.portainer.loadbalancer.server.port=9000
|
|
|
|
networks:
|
|
agent-network:
|
|
attachable: true
|
|
traefik-public:
|
|
external: true
|
|
|
|
volumes:
|
|
portainer-data:
|