Skip to content

Instantly share code, notes, and snippets.

@zironycho
Last active June 30, 2019 23:00
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zironycho/0e53a5e4e2df1e29aed845dba94be64c to your computer and use it in GitHub Desktop.
Save zironycho/0e53a5e4e2df1e29aed845dba94be64c to your computer and use it in GitHub Desktop.
portainer stack with traefik
version: '3.2'
services:
agent:
image: portainer/agent
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
command: -H tcp://tasks.agent:9001 --tlsskipverify
volumes:
- portainer_data:/data
networks:
- agent_network
- proxy
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.role == manager]
labels:
- traefik.docker.network=proxy
- traefik.backend={{ .Stack.Name }}_portainer
- traefik.port=9000
- traefik.frontend.rule=Host:${HOST};PathPrefixStrip:/portainer
networks:
agent_network:
driver: overlay
attachable: true
proxy:
external:
name: proxy
volumes:
portainer_data:
@zironycho
Copy link
Author

zironycho commented Aug 7, 2018

required

environment variable:

HOST: your traefik host address

network:

proxy: overlay network for traefik

traefik

deploy


# set host
export HOST={{ your traefik host name }}

# create proxy network
docker network create -d overlay proxy

# service for traefik
docker service create -d --name traefik \
  --constraint=node.role==manager \
  -p 8080:80 \
  -p 8081:8080 \
  --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \
  --network proxy \
  traefik \
  --docker \
  --docker.swarmmode \
  --docker.domain=${HOST} \
  --docker.watch \
  --api

# service for portainer 
curl -L https://gist.github.com/zironycho/0e53a5e4e2df1e29aed845dba94be64c/raw/ \
  -o portainer-agent-stack-traefik.yml
docker stack deploy -c portainer-agent-stack-traefik.yml portainer

reference:

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