119 lines
3.1 KiB
YAML
119 lines
3.1 KiB
YAML
services:
|
|
swarmpit:
|
|
image: swarmpit/swarmpit:latest
|
|
environment:
|
|
SWARMPIT_DB: http://couchdb:5984
|
|
SWARMPIT_INFLUXDB: http://influxdb:8086
|
|
SWAMPIT_DOCKER_SOCK: http://socketproxy:2375
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
healthcheck:
|
|
test: ["CMD", "echo", "true"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 20
|
|
networks:
|
|
- net
|
|
- traefik
|
|
- socketproxy
|
|
deploy:
|
|
endpoint_mode: dnsrr
|
|
placement:
|
|
constraints:
|
|
- node.hostname == macmini14
|
|
labels:
|
|
homepage.group: Infrastructure
|
|
homepage.name: Swarmpit
|
|
homepage.href: https://swarmpit.nixc.us/
|
|
homepage.description:
|
|
us.nixc.autodeploy: "true"
|
|
traefik.enable: "true"
|
|
traefik.http.routers.swarmpit_swarmpit.tls: "true"
|
|
traefik.http.services.swarmpit_swarmpit.loadbalancer.server.port: 8080
|
|
traefik.http.routers.swarmpit_swarmpit.rule: Host(`swarmpit.nixc.us`)
|
|
traefik.http.routers.swarmpit_swarmpit.entrypoints: websecure
|
|
traefik.http.routers.swarmpit_swarmpit.tls.certresolver: letsencryptresolver
|
|
traefik.http.routers.swarmpit_swarmpit.service: swarmpit_swarmpit@docker
|
|
traefik.docker.network: traefik
|
|
resources:
|
|
limits:
|
|
cpus: '0.50'
|
|
memory: 1024M
|
|
reservations:
|
|
cpus: '0.25'
|
|
memory: 512M
|
|
|
|
couchdb:
|
|
image: couchdb:2.3.0
|
|
volumes:
|
|
- /mnt/tank/persist/nixc.us/swarmpit/production/couchdb:/opt/couchdb/data
|
|
environment:
|
|
COUCHDB_USER: ${COUCHDB_USER:-admin}
|
|
COUCHDB_PASSWORD: ${COUCHDB_PASSWORD:-password}
|
|
networks:
|
|
- net
|
|
deploy:
|
|
endpoint_mode: dnsrr
|
|
resources:
|
|
limits:
|
|
cpus: '0.30'
|
|
memory: 256M
|
|
reservations:
|
|
cpus: '0.15'
|
|
memory: 128M
|
|
placement:
|
|
constraints:
|
|
- node.hostname == macmini14
|
|
labels:
|
|
- "us.nixc.autodeploy=true"
|
|
|
|
influxdb:
|
|
image: influxdb:1.7
|
|
environment:
|
|
INFLUXDB_DB: ${INFLUXDB_DB:-swarmpit}
|
|
INFLUXDB_ADMIN_USER: ${INFLUXDB_ADMIN_USER:-admin}
|
|
INFLUXDB_ADMIN_PASSWORD: ${INFLUXDB_ADMIN_PASSWORD:-password}
|
|
INFLUXDB_HTTP_AUTH_ENABLED: "true"
|
|
networks:
|
|
- net
|
|
deploy:
|
|
endpoint_mode: dnsrr
|
|
resources:
|
|
limits:
|
|
cpus: '0.60'
|
|
memory: 512M
|
|
reservations:
|
|
cpus: '0.30'
|
|
memory: 128M
|
|
|
|
agent:
|
|
image: swarmpit/agent:latest
|
|
environment:
|
|
DOCKER_API_VERSION: "1.43"
|
|
EVENT_ENDPOINT: "http://swarmpit_swarmpit:8080/events"
|
|
HEALTH_CHECK_ENDPOINT: "http://swarmpit_swarmpit:8080/version"
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
networks:
|
|
- net
|
|
deploy:
|
|
mode: global
|
|
endpoint_mode: dnsrr
|
|
labels:
|
|
us.nixc.autodeploy: 'true'
|
|
swarmpit.agent: 'true'
|
|
resources:
|
|
limits:
|
|
cpus: '0.10'
|
|
memory: 64M
|
|
reservations:
|
|
cpus: '0.05'
|
|
memory: 32M
|
|
|
|
networks:
|
|
net:
|
|
driver: overlay
|
|
traefik:
|
|
external: true
|
|
socketproxy:
|
|
external: true |