Dockerドキュメントに基づいてcdmを置き換える方法: https://docs.docker.com/reference/builder/#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
それを行う正しい方法は、cmd ["..."]を削除することです
docker run --name test test/test-backend /srv/www/bin/gunicorn.sh
Dockerfile
は、実行されるコンテナのデフォルトを許可するCMD
命令を使用します。
以下の行は、スクリプト/srv/www/bin/gunicorn.sh
をデフォルト値としてCMD
のDockerfile
命令ですでに提供しているため、実行時に内部的に/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をオーバーライドできます。