VS Code の Dev Container では Dockerfile の ENTRYPOINT が実行されない(っぽい)ので "postCreateCommand" プロパティで代替する

結論

devcontainer.json 内に、たとえば以下のように書きます。

{
  (中略)
  "postCreateCommand": ".devcontainer/devcontainer_entrypoint.sh"
  (中略)
}

上記の devcontainer_entrypoint.sh 内に、DockerfileENTRYPOINT の内容を移植すればよいかと思います。独自のコマンド等を入れたい場合には、ENTRYPOINT の内容を含み、かつそれに独自のコマンドを追記する形になるでしょう。

参考

github.com

qiita.com

補足

これだと Dockerfile が書き換えられるたびに devcontainer.json も書き換えねばならずイケてないです。チーム開発では扱いづらい感じがします。もっとも、実際は ENTRYPOINT にダイレクトにコマンドを書くことは今ではほとんど無く、シェルスクリプトにまとまっているので問題ないかとは思いますが。

Dev Container 自体が個人での開発用の機能という位置づけなのかもしれません。用いる Dockerfile は、ECS や Cloud Run へのデプロイ、各レジストリへの push は想定していない*1のかもしれません。

*1:か、別で行う

Powered by はてなブログ