Déploiement Docker
Requirements
- Docker
- Linux file system (docker shared path)
Host Path structure
User : current user
mkdir ~/sdio
mkdir ~/sdio/mongodb
mkdir ~/sdio/mongodb/db
mkdir ~/sdio/mongodb/log
mkdir ~/sdio/mongodb/backup
mkdir ~/sdio/redis
mkdir ~/sdio/apps
mkdir ~/sdio/apps/uploads-files
mkdir ~/sdio/apps/uploads
mkdir ~/sdio/apps/temp-files
mkdir ~/sdio/apps/logs
mkdir ~/sdio/apps/nginx
mkdir ~/sdio/apps/ssl-private
mkdir ~/sdio/backups
Initialisation de l'environnement
Les points Docker network et Jeu de données Bim-état concernant uniquement la 1re mise en place de l'environnement (100% vierge).
Docker network
docker network create --driver bridge sdionet
Jeu de données Bim-état
Le jeu de données (dump mongo) peut être obtenu sur demande. Procédure à effectuer après la mise en place du Container MongoDB.
Procédure pour restaurer le jeu de donnée :
- Placer le jeu de données dans le dossier (décompresser) :
~/sdio/mongodb
- Rentrer dans le Docker :
docker exec -it sdiomongo bash
- Lancer la restauration :
- environnement Prod :
mongorestore --db sdioprod --drop ~/sdio/mongodb/*dossier-dump*
- environnement Dev :
mongorestore --db sdio --drop ~/sdio/mongodb/*dossier-dump*
- environnement Prod :
- Sortir du Docker
exit
MongoDB
docker run --restart always --name sdiomongo -p 27017:27017 -d -v ~/sdio/mongodb:/data -v ~/sdio/mongodb/db:/data/db --network=sdionet mongo:3.4
API
Prod (default)
docker run --restart always --name sdioapi -p 3000:3000 -d --network=sdionet -v ~/sdio/apps/uploads:/home/swissdata.api.ts/uploads -v ~/sdio/apps/uploads-files:/home/swissdata.api.ts/uploads-files -v ~/sdio/apps/temp-files:/home/swissdata.api.ts/ignored -v ~/sdio/apps/logs:/home/swissdata.api.ts/logs --env DBNAME=sdio --env NODE_ENV=production platform5/swissdata:latest
Dev
docker run --restart always --name sdioapi -p 3000:3000 -d --network=sdionet -v ~/sdio/apps/uploads:/home/swissdata.api.ts/uploads -v ~/sdio/apps/uploads-files:/home/swissdata.api.ts/uploads-files -v ~/sdio/apps/temp-files:/home/swissdata.api.ts/ignored -v ~/sdio/apps/logs:/home/swissdata.api.ts/logs --env DBNAME=sdio --env NODE_ENV=development platform5/swissdata
Update API
API Client Manager
docker run --restart always --name sdioclient -p 8000:80 -d --network=sdionet -e HOST=${urlAPI:3000} platform5/swissdata_client
Update Host name
docker exec -it sdioclient sh /docker-entrypoint.sh
Bimetat Client Viewer
docker run --restart always --name bevc -p 80:80 -d --network=sdionet -e HOST=${urlAPI:3000} tamuh/bimetat_viewer_client
Update Host name
docker exec -it bevc sh /docker-host.sh