Files
swarm/docker-compose.yml
2025-11-22 23:53:09 +00:00

94 lines
2.4 KiB
YAML

version: '3.2'
services:
traefik:
image: "traefik:latest"
ports:
- "80:80"
- "443:443"
- "8080:8080"
networks:
- public
- badge-net
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "/home/trav/portainer/traefik:/etc/traefik:rw"
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.hostname == little]
labels:
- "traefik.enable=false"
agent:
container_name: portainer-agent
image: portainer/agent:lts
environment:
# REQUIRED: Should be equal to the service name prefixed by "tasks." when
# deployed inside an overlay network
AGENT_CLUSTER_ADDR: tasks.agent
AGENT_SECRET: portainer_agent_secret_key_2024
AGENT_PORT: 9001
LOG_LEVEL: WARN
ports:
- 9001
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/volumes:/var/lib/docker/volumes
- /:/host
networks:
- portainer_agent_network
deploy:
mode: global
placement:
constraints: [node.platform.os == linux]
labels:
- "traefik.enable=false"
portainer:
container_name: service
image: portainer/portainer-ee:lts
command: -H tcp://tasks.agent:9001 --tlsskipverify
ports:
- "9443:9443"
- "9000:9000"
- "8000:8000"
volumes:
- portainer_data:/data
environment:
AGENT_SECRET: portainer_agent_secret_key_2024
networks:
- public
- portainer_agent_network
- badge-net
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.role == manager]
labels:
- "traefik.enable=true"
- "traefik.swarm.network=public"
- "traefik.http.routers.portainer.rule=Host(`dock.toy`)"
- "traefik.http.routers.portainer.entrypoints=web"
- "traefik.http.services.portainer.loadbalancer.server.port=9000"
- "traefik.http.routers.portainer.service=portainer"
# Edge
- "traefik.http.routers.edge.rule=Host(`edge.toy`)"
- "traefik.http.routers.edge.entrypoints=web"
- "traefik.http.services.edge.loadbalancer.server.port=8000"
- "traefik.http.routers.edge.service=edge"
networks:
public:
external: true
attachable: true
portainer_agent_network:
external: true
badge-net:
attachable: true
external: true
volumes:
portainer_data: