Files
nas-compose/bootstrap.docker-compose.yml
2022-12-26 13:25:33 +01:00

82 lines
1.7 KiB
YAML

name: Bootstrap
services:
docker:
image: alpine/socat
command: tcp-listen:2375,fork,reuseaddr unix-connect:/var/run/docker.sock
networks:
- docker
volumes:
- /var/run/docker.sock:/var/run/docker.sock
restart: unless-stopped
labels:
nas-compose.boostrap: true
traefik:
image: traefik
ports:
- 80:80
- 443:443
- 8080:8080
networks:
- traefik
- docker
configs:
- source: traefik
target: /etc/traefik/
depends_on:
- docker
restart: unless-stopped
labels:
nas-compose.boostrap: true
portainer:
image: portainer/portainer-ce
command: >
--host tcp://docker:2375
--hide-label nas-compose.boostrap=true
--admin-password-file /run/secrets/portainer_password
networks:
- docker
- traefik
volumes:
- portainer:/data
secrets:
- portainer_password
depends_on:
- docker
restart: unless-stopped
labels:
nas-compose.boostrap: true
traefik.enable: true
traefik.http.routers.portainer.rule: HostRegexp(`portainer{subdomain:(\.[a-z0-9-]+)?}.dedicated.contact`)
traefik.http.services.portainer.loadbalancer.server.port: 9443
traefik.http.services.portainer.loadbalancer.server.scheme: https
networks:
docker:
name: docker
labels:
nas-compose.boostrap: true
traefik:
name: traefik
labels:
nas-compose.boostrap: true
volumes:
portainer:
driver_opts:
type: none
o: bind
device: ${MOUNT_DIR?}/portainer/data/
labels:
nas-compose.boostrap: true
configs:
traefik:
file: ${MOUNT_DIR?}/traefik/config/
secrets:
portainer_password:
file: ${MOUNT_DIR?}/portainer/secrets/portainer_password