82 lines
1.7 KiB
YAML
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
|