create the network:
docker network create --driver=overlay --subnet=10.0.3.0/24 mongodb
docker network create --driver=overlay --subnet=10.0.4.0/24 chat
docker network create --driver=overlay --subnet=10.0.5.0/24 logs
create the file mongodb-stack.yml, with content:
version: '3.3'
services:
db:
image: mongo:4.2
volumes:
- /containers/mongodb/:/data
networks:
- mongodb
- chat
- logs
ports:
- 27017:27017
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
labels:
- traefik.enable=false
web:
image: mongo-express
networks:
- traefik
- mongodb
environment:
ME_CONFIG_MONGODB_SERVER: db
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: example
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
labels:
- traefik.enable=true
- traefik.docker.network=traefik
- traefik.constraint-label=traefik
- traefik.http.routers.web-http.rule=Host(`adminer.krolaki.eu`)
- traefik.http.routers.web-http.entrypoints=http
- traefik.http.routers.web-http.middlewares=https-redirect
- traefik.http.routers.web-https.rule=Host(`adminer.krolaki.eu`)
- traefik.http.routers.web-https.entrypoints=https
- traefik.http.routers.web-https.tls=true
- traefik.http.services.web.loadbalancer.server.port=8081
networks:
traefik:
external: true
mongodb:
external: true
chat:
external: true
logs:
external: true