-
Notifications
You must be signed in to change notification settings - Fork 59
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
Docker #1127
Docker #1127
Conversation
Hello ! En fait le Dockerfile qu'on a fait est bien pour de la prod : image la plus légère possible, sans yarn et composer. Mais pour du dev, c'est pas du tout adapté du coup. Je ne me souviens pas à quoi ressemblait l'ancien Dockerfile, mais il était ptet mieux adapté à du dev. Ptet qu'un rollback s'impose, pour le dev. |
Du coup, merci pour ta PR, c'est déjà ça de boulette en moins. Pour la suite, je sais pas quoi proposer (pis je viens d'arriver sur YesWiki moi !) On pourrait par exemple reprendre l'ancien setup docker pour le dev, et faire de notre contrib un truc "spécial prod", qui aurait plus vocation à finir sur le docker hub par exemple. |
Est-ce qu'il y avait des points de friction avec l'ancien Dockerfile ? Des choses à améliorer pour l'UX de dev ? |
Hello! Désolé c'est moi qui ait rapidement fusionné la branche, car j'avais la semaine avec les étudiant.es dockerophiles qui démarrait, on aurait du aller plus loin dans la concertation avant de mettre ca dedans, sorry... (<tacle gratos>mais je remarque que la fameuse promesse de docker d’écrire 4 lignes dans un fichier et que cela marche de partout ne semble pas tenue</tacle gratos>). En tout cas, la solution me semble toute trouvée puisqu'il suffirait donc de faire un docker compose de dev (et la remarque de @seballot d'avoir le docker-compose par défaut en mode dev, et d'avoir celui de production sous un nom du genre docker-compose-prod.yaml ), en essayant d'avoir un truc cohérent entre les deux (meme images sources? même secrets?) et donc de remettre la stack de dev en mode je fais docker-compose et ca juste marche, et c'est parti! Je suis pas fort en docker, mais je peux faire gros beta testeur, et documenter le tout. Quelqu'un.e de dispo pour regarder cela a l'occasion? |
salut @ppom0, merci pour tes retours ! Ok je comprend mieux l'idée de faire un truc très léger pour la prod. Mais effectivement c'est pas adapté au dev :) D'ailleurs je viens de comprendre l'histoire des volumes avec le docker-compose-dev, car en fait sur le docker-compose.yml si je fait des changement sur mon éditeur sans etre connecté sur le container, les changements ne sont pas pris en compte. Mais meme en virant le volume, peut etre à cause de la conf nginx, si je change un fichier javascript rien n'est pris en compte dans mon navigateur. donc vraiment je peux pas dev lol Si @ppom0 ou @oiseauroch vous êtes motivé à refaire une config plus adaptée au dev, ça serait avec plaisir. Si vous avez pas le temps, je le ferai, dites moi a+ |
Ps: @mrflos je suis très déçu de voir qui tu priorise entre des étudiants inconnus avec leur macbook dernier modèle, et ton pote linuxien grand contributeur de yeswiki :P |
@seballot je ne priorise pas, t'inquietes, juste je ne maitrise pas encore assez cette techno pour faire les bons choix, désolé! |
Hello, je vois pour faire ça pendant les vacances. Effectivement, l'image crée est plus pour la prod que pour le dev |
didn't test maildev for now.
didn't test maildev for now.
add documentation
Normalement, l'image fonctionne si vous voulez tester. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yo !
Super merci pour ce travail !
J'ai pu builder et lancer les containers sans encombres, la doc est top !
En revanche quelques trucs ne fonctionnent pas, cf mes commentaires
A+
Sebastian
docker/docker-compose-prod.yml
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
je crois que ce fichier devrait appeler le docker-prod non?
networks: | ||
- yeswiki | ||
|
||
yeswiki-web: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Juste par curiosité, quel est l'intérêt d'avoir deux container yeswiki-app et yeswiki-web, et pas un seul?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Je ramène ma fraise, je peux pas justifier tout ce qui a été fait ici mais pour une question générale je peux ^^
Ça fait partie de la "philosophie" de Docker, avec généralement un seul processus qui tourne par conteneur. Ça a plusieurs avantages,
- le meilleur étant de pas avoir à maintenir l'install de nginx : on utilise l'image dédiée, avec une conf adaptée aux conteneurs et tout. Alors que si on se fait un
apt install nginx
dans la même image, on n'a pas ces garanties - le second étant de tirer parti de l'ordonnanceur de Docker : si le PID 1 du conteneur s'éteint, le conteneur fail. Si tu veux faire un conteneur correct avec plusieurs processus, il va falloir que tu lances un mini ordonnanceur toi-même, ou le 2e processus sera pas du tout "géré"
Voilà pour l'info drop! Je suis sûr·e que y'a d'autres explications plus charismatiques sur le web :')
- yeswiki-app | ||
networks: | ||
- yeswiki | ||
mail: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Top le mailer !!
docker/dockerfile_test.yml
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ce fichier n'est pas utilisé, et l'extension ne correspond pas, un oubli peut etre?
docker/entrypoint.sh
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perso j'aime pas trop lancer les commandes type composer et yarn dans les entrypoint, car si elles foirent, alors le container ne démarre pas. Et comme il démarre pas tu peux pas t'y connecter pour fixer d'éventuel truc pour que ça passe, faut donc utiliser un entrypoint special pour débugger etc..
Ca me dérange pas de laisser comme ça, juste je partage un retour d'expérience
docker compose exec yeswiki-app composer install | ||
docker compose exec yeswiki-app yarn install |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Chez moi ces commandes ne fonctionnent pas
OCI runtime exec failed: exec failed: unable to start container process: exec: "yarn install": executable file not found in $PATH: unknown
Aussi, si je me connecte au container avec un docker compose exec yeswiki-web bash
et que ensuite je fait un yarn ou un composer, la commande se lance mais échoue à cause de problèmes de permissions
yarn install
=> error Error: EACCES: permission denied, unlink '/var/www/html/node_modules/@babel/parser/CHANGELOG.md'
composer install
=> In Filesystem.php line 288:=Could not delete /var/www/html/vendor/bin/carbon:
alors que dpeuis le entrypoint ça fonctionne. (Ps: j'ai bien créé un docker/.env avec mon user id & gorup)
docker/dockerfile
Outdated
|
||
ARG GID | ||
|
||
RUN groupadd -g "${UID}" yeswiki \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ya une typo, je croies : ${UID}
devrait être ${GID}
ping @ppom0 @oiseauroch ca vous dirai une session pair programing avec moi comme beta testeur neophyte de docker, histoire de documenter et valider que nos 2 scenarii docker prod et dev fonctionnent puis le merger? |
Ça me dit, en journée jeudi ou vendredi ! @mrflos @oiseauroch |
Dispo aussi jeudi ou vendredi ! |
@ppom0 @oiseauroch ça irait jeudi matin ? Genre 11h? |
ok pour moi ! |
Yo !
@oiseauroch merci pour les commits sur docker! néanmoins j'ai eu des soucis sur ma machine :) Voilà mes retours
wakka.config.php
ou qu'ils le modifient avec les nouvelles bonnes valeurs, supprimer son ancienne image (car elle a le même nom), et s'assurer que tout fonctionne bien. Perso, ça fait 1h30 que je bataille pour re avoir un environement de dev, ça fait pas super plaisir :) surtout quand ça marchait avant héhédocker-compose-dev.yml
ne fonctionne pas correctement, quand je up j'ai cette erreuryeswiki-web | nginx: [emerg] host not found in upstream "yeswiki-app:9000" in /etc/nginx/nginx.conf:34
.docker exec -it yeswiki bash
, il n'y a ni composer ni yarn, du coup je ne peut pas gérer mes dépendances (il faudrait que j'installe yarn et composer sur ma machine locale, avec la bonne version etc...). Je pense que c'est du aux changement qu'il y a eu sur le dockerfile. Est ce qu'il y a un moyen d'avoir accès à ces commandes? car sinon IMHO cela defeat le but de docker, non?En tout cas super content qu'il y ait de nouveau dev sur yeswiki, meme si j'avoue cette expérience docker m'a un peu frustré sur le coup hi hi
Bise !