Comment vous pouvez remplacer le cdm basé sur la documentation de docker: 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"]
la commande docker run 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 dit cette erreur:
System error: exec: "cmd": executable file not found in $PATH
La bonne façon de le faire est de supprimer cmd ["..."]
docker run --name test test/test-backend /srv/www/bin/gunicorn.sh
Dockerfile
utilise l'instruction CMD
qui autorise les valeurs par défaut pour le conteneur en cours d'exécution.
La ligne ci-dessous exécutera le script /srv/www/bin/gunicorn.sh
comme son déjà fourni dans CMD
instruction dans votre Dockerfile
comme valeur par défaut, qui est exécutée en interne comme /bin/sh -c /srv/www/bin/gunicorn.sh
pendant l'exécution.
docker run --name test test/test-backend
Maintenant, dites si vous voulez exécuter autre chose, ajoutez simplement cela à la fin du docker run
. Maintenant, la ligne ci-dessous devrait exécuter bash
à la place.
docker run --name test test/test-backend /bin/bash
Pour ceux qui utilisent docker-compose:
docker-compose run [your-service-name-here-from-docker-compose.yml] /srv/www/bin/gunicorn.sh
Dans mon cas, je réutilise le même service docker pour exécuter les versions de développement et de production de mon application React:
docker-compose run my-react-app npm run build
Va exécuter mon webpack.config.production.js
et générez l'application dans dist
. Mais oui, à la question d'origine, vous pouvez remplacer le CMD dans la CLI.