-
Notifications
You must be signed in to change notification settings - Fork 160
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
Ajoute la configuration de dev pour docker-compose - reprise #5012
Conversation
Les images se basent sur Debian et pas sur Alpine suite à quelques problèmes de paquets binaires pas distribués pour musl. Le conteneur du frontend a un accès en lecture seule aux sources, dans le dossier `assets/`. Il fait tourner uniquement le processus de Gulp, qui observe tous les fichiers et met à jour un volume monté sur `dist/` dès le moindre changement. Ce même volume `dist/` est monté en lecture seule dans le conteneur du backend, qui fait tourner le processus de Django. Le dossier `zds/` est également partagé en lecture seule. Pendant que ça tourne, les fixtures peuvent être appliquées comme ça : docker-compose exec back \ python manage.py loaddata \ --settings zds.settings_docker_dev \ fixtures/users.yaml Et lorsque tout est arrêté, les tests peuvent être lancés comme ça : docker-compose run back \ python manage.py test \ --settings zds.settings_docker_test Et pour lint le backend : docker-compose exec back \ make lint-back La BDD, les fichiers des tutos et ceux des utilisateurs sont dans un volume nommé, ils persistent.
Bon, j’étais un peu en panne d’inspiration pour le nom, du coup il s’appelle `clem` pour l’instant. C’est un petit script compatible avec Python 2 et Python 3 qui lance docker-compose. Évidemment, c’est très limité. Mais je pense que c’est l’idéal pour des gens qui veulent débugger rapidement un bout de JS sans avoir à lire un tas de documentation sur comment se servir de Docker. Ajoute également une petite page de documentation là-dessus.
Utilise Xvfb un peu comme Travis.
Ça fait moins de répétitions.
L'utilisation de SELinux pour Docker (active sur les distributions type RHEL) empechera l'utilisation correcte des volumes. Le flag :z doit-etre mis sur les fichiers utilises par de multiples containers (ou :Z si un seul container utilise le fichier).
Merci <3 Note que pour installer LaTeX, c'est presque simple. Par contre, ça alourdi le poid un max (mais moins que les 1.5 Gio qu'on a pu connaitre par le passé). |
Disons que j'ai été touché par la flemme d'essayer de comprendre comment cette partie doit se déployer. Après je me dis que celui qui utilise son docker, ce n'est pas forcément pour faire du pdf. Il préférera utiliser ses outils. |
Une mini-remarque sur la doc: "un certain temps" ce n'est pas clair, selon les personnes ça peut vouloir dire 3 minutes, une heure, ou alors tourner toute la nuit (quand on installait OpenOffice sous Gentoo c'était ça). Ce serait chouette que quelqu'un mesure sur sa machine et note le temps dans la documentation ("par exemple, sur une machine de test, ça a pris 45mn"), pour donner un ordre de grandeur. Si jamais j'ai l'occasion d'essayer, j'essaierai de penser à le faire. |
(Une personne de plus qui n'a pas réussi à installer le backend en voulant contribuer au (frontend du) site: https://zestedesavoir.com/forums/sujet/11603/prototype-dinterface-de-relecture-de-contenus/?page=1#p193229 .) |
J'ai testé et j'obtiens l'erreur suivante : Preparing to unpack .../71-xvfb_2%3a1.19.2-1+deb9u5_amd64.deb ...
Unpacking xvfb (2:1.19.2-1+deb9u5) ...
dpkg: error: error creating new backup file '/var/lib/dpkg/status-old': Invalid cross-device link
E: Sub-process /usr/bin/dpkg returned an error code (2)
ERROR: Service 'back' failed to build: The command '/bin/sh -c apt-get update && apt-get install -y --no-install-recommends --no-install-suggests git python3-setuptools libxml2-dev python3-lxml libxslt-dev libz-dev python3-sqlparse libjpeg62-turbo libjpeg62-turbo-dev libfreetype6 libfreetype6-dev libffi-dev python-tox build-essential xvfb xauth firefox-esr wget && pip install wheel && wget https://github.com/mozilla/geckodriver/releases/download/v0.16.1/geckodriver-v0.16.1-linux64.tar.gz && tar -xzf geckodriver-v0.16.1-linux64.tar.gz -C /bin/ && rm -rf /var/lib/apt/lists/* /var/cache/* /usr/share/doc/* /tmp/*' returned a non-zero code: 100
make: *** [Makefile:26: docker-back-start] Error 1 Je suis sous Archlinux. |
Les gens sous archlinux ont l'art de déterrer des bugs du futur ;) |
Hé ! C'est ça d'être le plus à jour possible. |
Ouaip'. Mais pour le coup, à moins de compiler un python 3.6 vous même, vous êtes un peu coincés :/ |
C'est vrai, mais faut bien quelques inconvénients... Sinon ce serait une distro presque parfaite (le presque vient de la difficulté d'installation) |
Mes 2 centimes : si c'est juste un problème de build, pourquoi ne pas publier sur DockerHub une image buildé (c'est gratuit) ? (Même si ça n'est pas un soucis de build, c'est toujours cool de DL une image buildé quand le temps de build > au temps de DL) |
Bon je n'ai pas la force de reprendre cette PR. Je ferme. Je laisse la brache tout de même si jamais. Mais j'évite de poluer la liste des PRs ici. |
Cette PR reprend le travail de @motet-a ici (j'ai fait un rebase récent)
Ce que fait cette PR
make docker-back-start
donc c'est plutôt agréable et bénéfique pour faire des QA.make fixtures
pour docker seramake docker-fixtures
Ce qu'elle ne fait pas
Contrôle qualité
Vous devez installer Docker et docker-compose.
make docker-back-start
et attendez (longtemps)make docker-fixtures
Rendez vous sur le site et constatez qu'il fonctionne.