[解決済み】docker-compose.ymlでdocker execを実行する方法
2022-02-08 07:02:58
質問
docker-compose.yml ファイルが実行されている間に mysql データベーススキーマを作成しようとしています。
version: "2"
services:
web:
build: docker
ports:
- "8080:8080"
environment:
- MYSQL_ROOT_PASSWORD=root
mysql:
image: mysql:latest
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=test
ports:
- "3306:3306"
links:
- web
onrun:
command: "docker exec -i test_mysql_1 mysql -uroot -proot test <dummy1.sql"
onrunを試してみましたが、うまくいきません。 最初のイメージは構築していますが、2番目のイメージはDocker Hubから引っ張ってきています。 docker-composeの後、以下のコマンドを実行する方法を教えてください。
解決方法を教えてください。
のようなものはありません。
onrun
で
docker-compose
. これはコンテナを表示し、コマンドを実行するだけです。ここで、いくつかの可能なオプションがあります
mysqlの画像初期化機能を使用する
mysql:
image: mysql:latest
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=test
volumes:
- ./dummy1.sql:/docker-entrypoint-initdb.d/dummy1.sql
ports:
- "3306:3306"
SQL ファイルは
/docker-entrypoint-initdb.d
コンテナ内
bashスクリプトを使用
docker-compose up -d
# Give some time for mysql to get up
sleep 20
docker-compose exec mysql mysql -uroot -proot test <dummy1.sql
別のdockerサービスを使ってDBを初期化する
version: "2"
services:
web:
build: docker
ports:
- "8080:8080"
environment:
- MYSQL_ROOT_PASSWORD=root
mysql:
image: mysql:latest
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=test
ports:
- "3306:3306"
mysqlinit:
image: mysql:latest
volumes:
- ./dummy1.sql:/dump/dummy1.sql
command: bash -c "sleep 20 && mysql -h mysql -uroot -proot test < /dump/dummy1.sql"
のように、DBを初期化する別のサービスを実行します。
mysqlinit
上記のものでは
関連
-
[解決済み] DockerでPillowを使用する
-
[解決済み] Dockerコンテナの中から、マシンのローカルホストに接続するにはどうすればよいですか?
-
[解決済み] Docker Dockerコンテナからホストへのファイルコピー
-
[解決済み] ホストからDockerコンテナにファイルをコピーする方法は?
-
[解決済み] リポジトリを使用せずに、あるホストから別のホストにDockerイメージをコピーする方法
-
[解決済み] ホストからDockerコンテナのIPアドレスを取得する方法
-
[解決済み] Dockerコンテナのシェルに入るにはどうしたらいいですか?
-
[解決済み] 古いDockerコンテナを削除する方法
-
[解決済み】Dockerは仮想マシンとどう違うの?
-
[解決済み] Dockerのenvファイルに相当するKubernetesの機能
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Docker Unknown フラグ --mount
-
[解決済み] 接続するには、Dockerクライアントを昇格して実行する必要があります。
-
[解決済み] Dockerイメージを1つのコンテナにまとめる方法はありますか?
-
[解決済み] docker ps' と 'docker-compose ps' コマンドで異なる結果が表示される
-
[解決済み] docker の多段ビルド Go イメージ - x509: 証明書は不明な機関によって署名されました。
-
bashでの解決方法 : docker :コマンドが見つかりません。
-
docker-composeコンテナのマウント権限の問題
-
docker コマンドで例外 permissions denied が発生しました。
-
docker-composeはmysqlをボリュームでデプロイする際のパーミッション拒否の問題を解決します。
-
デーモンからのエラー応答: ***のマニフェストが見つかりません: マニフェスト不明: マニフェスト不明