2015-10-06 85 views
5

如何根據泊塢窗文檔上更換CDM: https://docs.docker.com/reference/builder/#cmd如何在泊塢窗運行線路覆蓋CMD命令

您可以覆蓋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"] 

碼頭運行命令是:

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 

回答

6

做它刪除CMD [ 「...」]

docker run --name test test/test-backend /srv/www/bin/gunicorn.sh 
1

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 

編號:Dockerfile Best Practices

0

對於使用泊塢窗 - 撰寫:

docker-compose run [your-service-name-here-from-docker-compose.yml] /srv/www/bin/gunicorn.sh

在我的情況,我重複使用相同的搬運工服務運行的開發和生產建立的我反應應用:

docker-compose run my-react-app npm run build

將運行我的webpack.config.production.js並將應用程序構建到dist。但是,對於原始問題,您可以在CLI中覆蓋CMD。