alainivars/utils2devops

View on GitHub
utils2devops/docker/local-proxy-prom-icinga2/portainer.yml

Summary

Maintainability
Test Coverage
version: "3.7"

x-default-opts:
  &default-opts
  logging:
    options:
      max-size: "10m"

networks:
  agent_network:
    driver: overlay
    attachable: true
  traefik_proxy:
    external:
      name: traefik_proxy

volumes:
  portainer_data:

services:

  agent:
    <<: *default-opts
    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:
    <<: *default-opts
    image: portainer/portainer
    command: -H tcp://tasks.agent:9001 --tlsskipverify
    volumes:
      - portainer_data:/data
    networks:
      - agent_network
      - traefik_proxy
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints: [node.role == manager]
      restart_policy:
        condition: on-failure
      labels:
        - traefik.enable=true
        - traefik.docker.network=traefik_proxy
        - traefik.port=9000
        - traefik.backend={{ .Stack.Name }}_portainer
        - traefik.backend.loadbalancer.sticky=true
        - traefik.frontend.passHostHeader=true
        - traefik.frontend.rule=Host:portainer.${DOMAIN}