version: '3.2'

services:
    agent:
        image: portainer/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-ce
        command: -H tcp://tasks.agent:9001 --tlsskipverify
        ports:
            - "9000:9000"
            - "8000:8000"
        volumes:
            - portainer_data:/data
        networks:
            - agent_network
        deploy:
            mode: replicated
            replicas: 1
            placement:
                constraints: [node.role == manager]

networks:
    agent_network:
        driver: overlay
        attachable: true

volumes:
    portainer_data:
