Dans ce TP, nous allons voir comment setup un service sur Docker Swarm.
Pour l'exemple, on va installer CodiMD
Dans cette page, on va voir seulement la partie création du stack.yaml et l'upload sur le cluster dev.
Pour avoir plus d'info et le setup sur la prod, allez sur la page Déployer un service sur Docker Swarm
services:
database:
image: postgres:11.6-alpine
environment:
- POSTGRES_USER=codimd
- POSTGRES_PASSWORD=<change_password>
- POSTGRES_DB=codimd
volumes:
- "${VOLUMES}/codimd/database-data:/var/lib/postgresql/data"
networks:
- network_codimd
deploy:
replicas: 1
restart_policy:
condition: on-failure
codimd:
image: nabo.codimd.dev/hackmdio/hackmd
environment:
- CMD_DB_URL=postgres://codimd:<change_password>@database/codimd
- CMD_USECDN=false
- CMD_ALLOW_ANONYMOUS_EDITS=true
- CMD_ALLOW_ANONYMOUS=true
ports:
- "<port_swarm>:3000"
volumes:
- ${VOLUMES}/codimd/upload-data:/home/hackmd/app/public/uploads
networks:
- network_codimd
deploy:
replicas: 1
restart_policy:
condition: on-failure
networks:
network_codimd:
driver: overlay
Connectez vous sur un noeud d'un cluster docker swarm.
Par exemple : ssh <your-ldap>@swarm-cadance avec votre VPN activé
Créez $VOLUMES/codimd/upload-data et $VOLUMES/codimd/database-data car Swarm mne créer pas lui même les dossiers.
Puis allez dans le dossier /mnt/cephfs/swarm/stacks en tapant cd $STACKS
Créez un dossier dans le dossier stacks et ajoutez le stack.yaml dans $STACKS/codimd/
Toujours dans le même dossier, faire docker stack deploy -c stack.yaml codimd
Vous pouvez maintenant faire docker stack ps codimd pour voir si ça fonctionne.
Maintenant vous pouvez ajouter une entrée DNS dans gitlab config DNS et ajouter une entrée Revproxy dans Gitlab config Reverse proxy pour pouvoir y accéder et tester le service.