Skip to content
Snippets Groups Projects
Verified Commit 7c138048 authored by Quentin Duchemin's avatar Quentin Duchemin
Browse files

[Misc] Remove shitty docker_prod.sh script

parent 0cbd8249
No related branches found
No related tags found
No related merge requests found
......@@ -23,8 +23,18 @@ Si on déploie un service pour la première fois, il faudra copier les fichiers
Il faut être connecté au registre de production pour la suite : on s'assure de bien avoir exécuté la commande `docker login registry.picasoft.net`. Les identifiants sont sur le [pass](https://gitlab.utc.fr/picasoft/interne/pass).
On peut alors utiliser le script [`docker_prod.sh`](./docker_prod.sh), qui automatise quelques étapes.
Il suffit de lancer la commande `$ ./docker_prod.sh <nom du dossier>`.
Si des volumes sont déclarés `external` (ce que nous ne [recommendons pas](./guide_bonnes_pratiques.md)), il faut les créer manuellement au prélable.
On peut ensuite se rendre dans le dossier et lancer, en général :
```bash
# Tirer la nouvelle version des images
docker-compose pull
# (Re)création des volumes, des réseaux, des conteneurs
docker-compose up -d
# Lecture des logs
docker-compose logs -f
```
Attention : un conteneur noté `Unhealthy` à cause d'un mauvais `HEALTHCHECK` sera **exclu** de Traefik, même s'il fonctionne bien!
......@@ -91,33 +101,16 @@ Je me rends de nouveau sur le [pipeline](https://gitlab.utc.fr/picasoft/projets/
Je me rends ensuite sur la machine de production (`pica02` à ce jour) et je lance la nouvelle version du service :
```bash
$ ssh qduchemi@pica02.picasoft.net
qduchemi@pica02:~$ cd /DATA/docker/dockerfiles
qduchemi@pica02:/DATA/docker/dockerfiles$ ./docker_prod.sh pica-mattermost
Starting procedure for pica-mattermost...
==== Pull Dockerfiles repository ====
Using branch master, is this correct ? [y/N]
y
Username for 'https://gitlab.utc.fr': qduchemi
Password for 'https://qduchemi@gitlab.utc.fr':
Déjà à jour.
==== Pull new versions of images ====
qduchemi@pica02:~$ cd /DATA/docker/dockerfiles/pica-etherpad
qduchemi@pica02:/DATA/docker/dockerfiles$ docker-compose pull
Pulling mattermost-db ... done
Pulling mattermost ... done
==== Ensure named external volumes are created ====
mattermost-config
mattermost-data
mattermost-plugins
mattermost-db
==== Lauch pica-mattermost ====
qduchemi@pica02:/DATA/docker/dockerfiles$ docker-compose up -d
Recreating mattermost-db ... done
Recreating mattermost-app ... done
==== Print logs (use Ctrl+C to stop) ====
qduchemi@pica02:/DATA/docker/dockerfiles$ docker-compose logs -f
Attaching to mattermost-app, mattermost-db
[...]
```
J'attends que l'application ait démarré, je vérifie que tout est ok sur [team.picasoft.net](https://team.picasoft.net).
......
#!/bin/bash
set -e
usage() {
echo -e "usage:\t$0 DIRECTORY, e.g. $0 pica-mattermost"
echo -e "\tDIRECTORY : name of the directory containing docker-compose.yml\n"
echo "This script is a helper to launch a service : it will create all needed volumes for the service,"
echo "pull the specified version of the image if any, and then launch docker-compose up -d."
exit 1
}
if [[ $# -ne 1 ]]; then
echo "ERROR : wrong number of arguments"
usage
fi
if [[ ! -d "$1" ]]; then
echo "ERROR : directory does not exist ($1)"
usage
fi
# Go to the folder of the service which will be tested
cd "$1"
echo -e "Starting procedure for \033[31m$1\e[0m..."
echo -e "\n==== Pull Dockerfiles repository ===="
echo -e "Using branch \033[31m $(git rev-parse --abbrev-ref HEAD)\e[0m, is this correct ? [y/N]"
read ans
if [ $ans == "y" ]; then
git pull
else
echo "Aborting."
exit 0
fi
echo -e "\n==== Pull new versions of images ===="
docker-compose pull
echo -e "\n==== Ensure named external volumes are created ===="
for v in $(docker-compose config --volumes); do
docker volume create "$v"
done
echo -e "\n==== Lauch $1 ===="
docker-compose up -d
echo -e "\n==== Print logs (use Ctrl+C to stop) ===="
docker-compose logs -f
......@@ -44,9 +44,7 @@ Toutes les paramètres sont configurables via l'environnement. On pourra regarde
Le [docker-compose.yml](./docker-compose.yml) proposé inclut deux versions : une principale, usuellement sur [pad.picasoft.net](https://pad.picasoft.net), et une hebdomadaire, usuellement sur [week.pad.picasoft.net](https://week.pad.picasoft.net).
La procédure de lancement classique avec `docker_prod.sh` lancera les deux instances sur la même machine.
Pour les lancer sur différentes machines, on n'utilisera pas ce script mais on lancera à la main :
Pour les lancer sur différentes machines, on lancera à la main :
```bash
# Pour l'instance principale, sur la machine A
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment