Posted at

DockerfileのCMDおよびdocker-compose.ymlで複数のbashコマンドを実行させる方法

More than 1 year has passed since last update.

DockerfileのCMD及び, docker-compose.ymlファイルのcommandでコマンドを実行する場合、

実行できるコマンドは一つである。

この場合シェルスクリプトを実行することで、複数のコマンドを実行することも出来る

もっと単純に複数コマンドを実行する方法は

bash -c "コマンド文字列"

の用にbash -cで呼び出してあげるだけで良い。

コンソールでbash -c "ls -l && ls"と言うようなので実験してみると良いだろう

具体的に、elasticsearchを9200ポートと9250ポートで起動する 例を用いて紹介する


Dockerfile

CMD bash -c "elasticsearch -d && elasticsearch --http.port=9250"


docker-compose.yml

command: bash -c "elasticsearch -d && elasticsearch --http.port=9250"