このページでは、Cloud Code for VS Code のリモート開発を使用する方法、つまり、コードベースをリモート コンテナで開いてアプリケーションをビルド、デバッグ、デプロイする方法について説明します。これにより、開発マシンの OS に関係なく、移植可能なアプリケーションを作成できます。
前提条件
Cloud Code 拡張機能をインストールするで説明されている設定のほか、リモート開発 VS Code 拡張機能パックをインストールします。
設定
Dockerfile と使用している言語の
Devcontainer.json
ファイルのある.devcontainer
フォルダを設定するには、[ Open a Remote Window] > [Add Dev Container Config Files] を開きます。コンテナでのリモート開発の手順で行うこともできます。プロンプトに従って操作すると、ワークスペースには次のものが作成されます。
Dockerfile - リモート開発コンテナにインストールするデベロッパー ツールを保持するコンテナ イメージを定義します。
Devcontainer.json
- リモート開発コンテナの実行方法を VS Code Remote Tools 拡張機能に指示します。
Dockerfile を開き、Google Cloud CLI と Skaffold のインストール手順を追加します。最新のコマンドについては、インストール ガイドをご覧ください。
Dockerfile で、
>> $HOME/.bashrc
コマンドの前に、localhost の gcloud CLI と Skaffold の構成をコピーする手順を追加します。別の方法として、コマンドを書き直して gcloud CLI と Skaffold をインストールすることもできます。# Copy localhost's ~/.kube/config file into the container and swap out localhost # for host.docker.internal whenever a new shell starts to keep them in sync. RUN echo '\n\ if [ "$SYNC_LOCALHOST_KUBECONFIG" == "true" ]; then\n\ mkdir -p $HOME/.kube\n\ cp -r $HOME/.kube-localhost/* $HOME/.kube\n\ sed -i -e "s/localhost/host.docker.internal/g" $HOME/.kube/config\n\ \n\ fi' \ if [ "$SYNC_LOCALHOST_GCLOUD" == "true" ]; then\n\ mkdir -p $HOME/.config/gcloud\n\ cp -r $HOME/.gcloud-localhost/* $HOME/.config/gcloud\n\ \n\ fi' \
Devcontainer.json
localhost から gcloud CLI と Skaffold の構成をコピーするために、ファイルを開いて次の実行引数を追加します。"-e", "SYNC_LOCALHOST_KUBECONFIG=true", "-e", "SYNC_LOCALHOST_GCLOUD=true",
必要なコンテンツをファイルに追加したら、 [リモート ウィンドウを開く] をクリックします。
devcontainer.json ファイルの例
devcontainer.json
ファイルは、コンテナに公開するポート、ドライブのマウント方法、リモート コンテナにインストールする拡張機能を Remote Container 拡張機能に指示します。次のサンプル devcontainer.json
ファイルでは、Remote Container 拡張機能が Cloud Code for VS Code 拡張機能をインストールするように指定しています。
"runArgs": [
"-v","/var/run/docker.sock:/var/run/docker.sock",
"--mount", "type=bind,source=${env:HOME}${env:USERPROFILE}/.kube,target=/root/.kube-localhost",
"--mount", "type=bind,source=${env:HOME}${env:USERPROFILE}/.config/gcloud,target=/root/.gcloud-localhost",
"-e", "SYNC_LOCALHOST_KUBECONFIG=true",
"-e", "SYNC_LOCALHOST_GCLOUD=true",
"--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined"
]
次のステップ
- SSH を使用したリモート開発に関する Visual Studio のドキュメントをご覧ください。
- Dev コンテナ拡張機能を使用して、Docker コンテナで Visual Studio Code を実行するチュートリアルを実施する。