Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Installation via docker-compose #6455

Open
wants to merge 1 commit into
base: dev
Choose a base branch
from

Conversation

firm1
Copy link
Contributor

@firm1 firm1 commented Jan 21, 2023

L'objectif de ce changement est de rajouter le support de docker-compose comme moyen d'installer (et développer) zds en local via docker tout en évitant d'installer une quelconque bibliothèque sur notre système.

J'ai rajouté la documentation qui va avec pour pouvoir retrouver simplement les services déployés..

Fix #XXXX

Contrôle qualité

  • Installer les prérequis pour l'installation (docker et docker-compose)
  • Depuis la racine de votre dépôt, installez et démarrez zds via la commande suivante : docker-compose up
  • Vérifiez qu'une instance de zds est bien présente en allant sur http://localhost:8000
  • Charger les fixtures en ouvrant un deuxième terminal et en lançant la commande docker-compose up fixtures
  • Vérifiez sur http://localhost:8000 que vous pouvez vous pouvez vous connecter via le compte admin/admin
  • Vérifier que le module de recherche est bien fonctionnel (faite une recherche dans la zone de recherche et vérifiez que vous avez des résultats)
  • Vérifier que le module d'export de contenus est bien fonctionnel (création d'un tutoriel et publication de ce dernier)

@coveralls
Copy link

Coverage Status

Coverage: 88.302%. Remained the same when pulling 505bf30 on firm1:enable_docker into fe00164 on zestedesavoir:dev.

@Arnaud-D
Copy link
Contributor

Arnaud-D commented Aug 27, 2023

Je n'ai pas réussi à joindre localhost.

Après avoir fait docker-compose up, je me retrouve avec une avalanche de lignes de ce genre :

watchdog_1       | 2023/08/27 11:59:46 Problem with dial: dial tcp 172.18.0.7:8000: connect: connection refused. Sleeping 1s
index-setup_1    | 2023/08/27 11:59:46 Problem with dial: dial tcp 172.18.0.7:8000: connect: connection refused. Sleeping 1s
back_1           | 2023/08/27 11:59:47 Problem with dial: dial tcp 172.18.0.6:27272: connect: connection refused. Sleeping 1s

Je ne connais pas vraiment docker, donc je ne sais pas diagnostiquer plus que ça.


Aussi, question subsidiaire pour @philippemilink : on préfère fusionner la présente PR après la finalisation de la nouvelle recherche ou après ? Il faudra adapter pour le nouveau moteur de recherche. J'ai une préférence pour après. C'est probablement plus facile d'adapter la présente PR que de rajouter encore une couche sur la PR de la recherche.

Copy link
Member

@philippemilink philippemilink left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

J'ai le même problème que @Arnaud-D concernant les messages Problem with dial.

J'ai pas mal de remarques :

  • ça rajoute quelques fichiers à la racine du dépôt qui sont spécifiques à Docker. Est-ce qu'on ne peut pas en déplacer un maximum dans un dossier dédié, par exemple scripts/docker ? Je ne sais pas comment sont ensuite gérés les chemins relatifs...
  • concernant les Dockerfile, il me semble qu'une bonne pratique est de minimiser les appels à RUN, parce que ça multiplie le nombre d'étapes dans la création de l'image et ça fait des images plus grosses...
  • pour back.Dockerfile (surtout), ce qui m'embête, c'est que ça duplique (encore !) des commandes d'installation qui sont déjà ailleurs dans le dépôt. Donc quand on mettra le script d'installation à jour, il faudra aussi (penser à) mettre à jour les Dockerfile. Est-ce qu'il n'y a pas moyen de mieux factoriser ?
  • pour docker.py, j'imagine bien quelque chose du genre
    from .prod import DATABASES
    DATABASES["default"]["NAME"] = "zds_docker"
    # etc pour les autres champs à modifier
    pour factoriser un maximum le code (pareil avec CACHES)

Aussi, question subsidiaire pour @philippemilink : on préfère fusionner la présente PR après la finalisation de la nouvelle recherche ou après ? Il faudra adapter pour le nouveau moteur de recherche. J'ai une préférence pour après. C'est probablement plus facile d'adapter la présente PR que de rajouter encore une couche sur la PR de la recherche.

Ça m'est égal, ça ne me dérange pas d'adapter les fichiers Docker dans la PR sur la recherche. Je préfère peut-être même qu'on merge avec le moteur de recherche utilisé au moment du merge, ça évite d'avoir une PR qui dépend d'une autre PR (et on ne sait pas quand sera mergé la PR sur la recherche).

Comment on lines +154 to +159



#COPY ./settings_docker.py /zds/zds/settings/docker.py
#COPY ./service/zds-watchdog.sh /zds/zds-watchdog.sh
#COPY ./service/zds-index.sh /zds/zds-index.sh
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Si c'est des commentaires, à supprimer ?

)

ZDS_APP["zmd"]["server"] = "http://zmd:27272"
ZDS_APP["visual_changes"] = ["snow"]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pourquoi on active la neige ?

"CONN_MAX_AGE": 600,
"OPTIONS": {
"charset": "utf8mb4",
"init_command": "SET sql_mode='STRICT_TRANS_TABLES'",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pourquoi on a cette ligne pour Docker, mais pas dans prod.py ?

@Arnaud-D
Copy link
Contributor

Arnaud-D commented Mar 9, 2024

@firm1 t'as prévu de rebosser dessus prochainement ? Si t'as pas le temps, pas de souci. C'est juste une histoire de suivi, on marquera la PR comme "en attente de reprise".

@Arnaud-D Arnaud-D added S-Zombie Ticket ou PR oubliée C-DevelopmentEnv Amélioration de l'environnement de dev labels Sep 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-DevelopmentEnv Amélioration de l'environnement de dev S-Zombie Ticket ou PR oubliée
Projects
Status: En attente de reprise
Development

Successfully merging this pull request may close these issues.

4 participants