Comment remplacer la commande CMD dans le menu fixe ligne run
Comment vous pouvez remplacer le mdp basé sur le panneau de la documentation:
https://docs.docker.com/reference/builder/#cmd
Vous pouvez remplacer la commande CMD
Dockerfile:
RUN chmod +x /srv/www/bin/* & chmod -R 755 /srv/www/app
RUN pip3 install -r /srv/www/app/pip-requirements.txt
EXPOSE 80
CMD ["/srv/www/bin/gunicorn.sh"]
le panneau de commande exécuter est:
docker run --name test test/test-backend
J'ai essayé
docker run --name test test --cmd ["/srv/www/bin/gunicorn.sh"]
docker run --name test test cmd ["/srv/www/bin/gunicorn.sh"]
Mais la console de dire ce message d'erreur:
System error: exec: "cmd": executable file not found in $PATH
Vous devez vous connecter pour publier un commentaire.
La bonne façon de le faire est de supprimer cmd ["..."]
La
Dockerfile
utiliseCMD
de l'instruction qui permet de valeurs par défaut pour le conteneur en cours d'exécution.La ligne ci-dessous va exécuter le script
/srv/www/bin/gunicorn.sh
comme déjà fournir dansCMD
instruction dans votreDockerfile
comme valeur par défaut, qui à l'interne est exécutée en tant que/bin/sh -c /srv/www/bin/gunicorn.sh
au cours de l'exécution.Dire maintenant, si vous voulez exécuter quelque chose d'autre, il suffit d'ajouter qu'à la fin de la
docker run
. Maintenant en dessous de la ligne doit s'exécuterbash
à la place.Ref: Dockerfile Les Meilleures Pratiques
Pour ceux qui utilisent docker-composer:
docker-compose run [your-service-name-here-from-docker-compose.yml] /srv/www/bin/gunicorn.sh
Dans mon cas je suis en réutilisant le même panneau de service pour exécuter le développement et la production des versions de mon réagir application:
docker-compose run my-react-app npm run build
Sera exécuté mon
webpack.config.production.js
et de construire l'application à ladist
. Mais oui, à la question initiale, vous pouvez remplacer le CMD dans la CLI.