Closed5

【devcontainer】コマンドパレットからdevcontainerを起動した際のファイルの格納場所

arikaarika

コマンドパレットからdevcontainerを立ち上げるのはとても手軽で楽なのだが、ファイルの実体がよくわからないことになるのが難点。
うっかりdocker-compose.ymlを誤って編集してしまった際など、.devcontainer/の実体に触りたいことがある。
その際に、どこにあるかがかなり分かりにくいためメモ。

arikaarika

コンテナ立ち上げ時のログをよく見ると、devcontainer用のイメージを作成した後に

[2088 ms] Start: Run: docker run -d --mount type=volume,src=hogehoge_project,dst=/workspaces -v /var/run/docker.sock:/var/run/docker.sock vsc-volume-bootstrap sleep infinity

というコマンドが走っている。
おそらくvolumeの(プロジェクト名)/workspacesにマウントしている様子。これっぽい。

arikaarika

というわけで適当にファイル編集用のコンテナを作成する。

docker run -it --rm --mount type=volume,src=(your_project_name),dst=/workspaces vsc-volume-bootstrap bash

srcの部分を随時書き換える。
起動するコンテナはなんでも良いので、今回は先程用意されていたdevcontainerのテンプレートコンテナをそのまま使う。
また、使い終わったら消えるように--rmフラグをつけておく。

arikaarika

後はvscodeのremote-containerから作成したコンテナにアクセスすれば良い。
編集が終わったらシェルを閉じること。

arikaarika

【追記】
もっと良い方法があったので追記する。

vscodeのremote-containerから
「開発ボリューム」→「(プロジェクト名)」→右クリック→「開発コンテナーで探索する」

これだけでファイルを操作するコンテナが立ち上がる。
すごい手軽。

このスクラップは2023/08/27にクローズされました