如何覆盖 docker 运行 行中的 CMD 命令
How to override the CMD command in the docker run line
如何根据 docker 文档替换 cmd:
https://docs.docker.com/reference/builder/#cmd
您可以覆盖 CMD 命令
Docker 文件:
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"]
docker运行命令是:
docker run --name test test/test-backend
我试过了
docker run --name test test --cmd ["/srv/www/bin/gunicorn.sh"]
docker run --name test test cmd ["/srv/www/bin/gunicorn.sh"]
但是控制台说这个错误:
System error: exec: "cmd": executable file not found in $PATH
正确的做法是删除 cmd ["..."]
docker run --name test test/test-backend /srv/www/bin/gunicorn.sh
Dockerfile
使用 CMD
指令允许正在执行的容器的默认值。
以下行将执行脚本 /srv/www/bin/gunicorn.sh
,因为它已经在 Dockerfile
的 CMD
指令中作为默认值提供,在内部执行为 /bin/sh -c /srv/www/bin/gunicorn.sh
在 运行 时间内。
docker run --name test test/test-backend
现在说如果你想 运行 其他东西,只需在 docker run
的末尾添加。现在下面一行应该 运行 bash
代替。
docker run --name test test/test-backend /bin/bash
对于那些使用 docker-compose 的人:
docker-compose run [your-service-name-here-from-docker-compose.yml] /srv/www/bin/gunicorn.sh
在我的例子中,我将相同的 docker 服务重新用于 运行 我的 React 应用程序的开发和生产构建:
docker-compose run my-react-app npm run build
将 运行 我的 webpack.config.production.js
并将应用程序构建到 dist
。但是,对于最初的问题,您可以在 CLI 中覆盖 CMD。
在您的 Dockerfile
中试试这个
CMD ["sh" , "-c", "command && bash"]
如何根据 docker 文档替换 cmd: https://docs.docker.com/reference/builder/#cmd
您可以覆盖 CMD 命令
Docker 文件:
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"]
docker运行命令是:
docker run --name test test/test-backend
我试过了
docker run --name test test --cmd ["/srv/www/bin/gunicorn.sh"]
docker run --name test test cmd ["/srv/www/bin/gunicorn.sh"]
但是控制台说这个错误:
System error: exec: "cmd": executable file not found in $PATH
正确的做法是删除 cmd ["..."]
docker run --name test test/test-backend /srv/www/bin/gunicorn.sh
Dockerfile
使用 CMD
指令允许正在执行的容器的默认值。
以下行将执行脚本 /srv/www/bin/gunicorn.sh
,因为它已经在 Dockerfile
的 CMD
指令中作为默认值提供,在内部执行为 /bin/sh -c /srv/www/bin/gunicorn.sh
在 运行 时间内。
docker run --name test test/test-backend
现在说如果你想 运行 其他东西,只需在 docker run
的末尾添加。现在下面一行应该 运行 bash
代替。
docker run --name test test/test-backend /bin/bash
对于那些使用 docker-compose 的人:
docker-compose run [your-service-name-here-from-docker-compose.yml] /srv/www/bin/gunicorn.sh
在我的例子中,我将相同的 docker 服务重新用于 运行 我的 React 应用程序的开发和生产构建:
docker-compose run my-react-app npm run build
将 运行 我的 webpack.config.production.js
并将应用程序构建到 dist
。但是,对于最初的问题,您可以在 CLI 中覆盖 CMD。
在您的 Dockerfile
中试试这个CMD ["sh" , "-c", "command && bash"]