vscode-container-tools
vscode に拡張機能 container-tools をつかって開発環境をつくる
windows11 pro : wsl2 ubuntu 24.04 sshd docker
windows11 home : vscode contanier-tools
どうも、 container-tools ではなく dev-container でないと、だめっぽいな。
いや、dev-container は home側のPCで動こうとしてるのでだめだわ。
あれ、そうでもないのか? 別の理由でうまくうごいてないのか。。。 なんだろぅ。
なんかあるのかもだけど、 dev container だけは ローカル側にはいってしまう。
container-tools はリモート側に入った。(どっちにインストールするかのボタンは表示されなかった。remote-ssh で接続してるときは、自動的にリモートなのだったのかな。)
ためしに golang もいれてみたけど、 インストール先の選択肢はなかったけど、リモートに入った。
リモート側に .devcontainer/devcontainer.json があったから、拡張機能がうまく自分でいれれなかったのかもしれないかな。 細かいチェックはしてない。
これ自体、dev container を動かしていないと使わないファイルっぽいなぁ。
地味に container-tools だけ使うか。。。というか全部コマンドラインでやるか。。。
とりあえず dev container でなく container-tools でやるので、このファイルはボツ。
ポート指定するときとか、いろいろは .devcontainer/devcontainer.json
に書くらしい
下のサンプルは gemini ちゃん作成
{
// コンテナ環境の名前。VS Codeの表示に使われます
"name": "My Project Dev Container",
// Dockerイメージのビルド方法を指定
"build": {
// Dockerfileがある場所(コンテキスト)を、このファイルからの相対パスで指定
"context": "..",
// 使用するDockerfileの名前
"dockerfile": "../Dockerfile"
},
// docker runコマンドに渡す引数を指定
"runArgs": [
// ホストのポート2225をコンテナのポート22にマッピング
"-p",
"2225:22",
// コンテナに固定の名前を付ける
"--name",
"my-project-dev-container",
// VS Codeを閉じたらコンテナを自動で削除する(開発中は便利です)
"--rm"
],
// VS Code自体の設定
"customizations": {
"vscode": {
// この開発環境で自動的にインストール・有効化する拡張機能
"extensions": [
"ms-azuretools.vscode-docker",
"github.copilot"
],
// この開発環境内だけで適用されるVS Codeの設定
"settings": {
"terminal.integrated.shell.linux": "/bin/bash"
}
}
},
// コンテナが作成された後に一度だけ実行されるコマンド
"postCreateCommand": "uname -a && echo 'Dev Container is ready!'",
// コンテナ内で作業するときのユーザーを指定(Dockerfileで作成したユーザーなど)
// "remoteUser": "vscode"
}
変数も使えるらしい
variables
だめみたいだなぁ。
{
"name": "My App Container",
// (1) 使用するイメージのバージョンを変数で定義
"variables": {
"IMAGE_TAG": "1.2.3"
},
// (2) 'build' の代わりに 'image' を使い、変数でイメージを特定
"image": "my-cool-app:${variable:IMAGE_TAG}",
// (3) runArgsでコンテナ名などを設定
"runArgs": [
"--name", "my-cool-app-${variable:IMAGE_TAG}-container"
]
}
あ、 compose があったか。
services:
ssh:
image: ssh:2
build: .
container_name: ssh-2
hostname: host-ssh2
ports:
- "2225:22"