docker-composeで環境変数付きコマンド実行の方法

docker logo

Nuxtが外から見えない

docker compose経由でnuxt.jsの開発環境を起動しようとしたけど、dockerサーバーが外部にあるので起動したNuxtにブラウザからアクセスできないという問題が発生。

調べたら、configファイルをいじるか、起動時に環境変数を渡してあげればよいということが分かった。
環境変数を指定して起動するのはこんな感じ

HOST=0.0.0.0 npm run dev

問題

docer-compose経由でnuxtを起動しようとして、こんな感じのコマンドを実行してみたがうまくいかない。

docker-compose exec app HOST=0.0.0.0 npm run dev
OCI runtime exec failed: exec failed: container_linux.go:380: starting container process caused: exec: "HOST=0.0.0.0": executable file not found in $PATH: unknown
基礎から学ぶ Vue.js
「Vue.js が楽しい! 」ウェブフロントエンド界隈でこの言葉を耳にすることが増えました。フロントエンドを取り巻く技術の発展によって、フロントエンドの役割は増え、フレームワークもより身近なものになっています。 この本では「Vue.js っ...

解決方法

いろいろ試した結果、shell経由でコマンドを渡してあげればうまくいくことが分かった。
こんな感じ

docker-compose exec app sh -c "HOST=0.0.0.0 npm run dev"

-c で、後に続くテキストをコマンドとして実行してくれるようです。
今回はshですが、bashとかほかのshellでも同じようなことができると思います。

タイトルとURLをコピーしました