2015-10-06 13 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コマンドは次のとおりです。

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命令は、実行中のコンテナのデフォルトを許可します。

下の行はすでに内部で実行時に/bin/sh -c /srv/www/bin/gunicorn.shとして実行されますデフォルト値としてごDockerfileCMD命令に提供し、そのようスクリプト/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を上書きすることができます。

関連する問題