VS Code(Visual Studio Code)には、リモート開発を行える拡張機能がいくつか存在します。
- Remote - SSH
- Remote - Containers
- Remote - WSL
- GitHub Codespaces
リモート開発を行うことにより、ローカルマシンに環境を構築せずに開発を行うことができます。
Remote - Containers
では、コンテナを使ったリモート開発を行うことが可能です。
また、開発環境のコード化・共有ができるので、誰でも素早く同じ環境で開発が行えるようになります。
Remote - Containers
インストール
Docker の環境を準備します。
Docker Desktop をインストールしてください。
Windows の場合は WSL2 の環境を整えることにより Windows 10 Home でも Docker Desktop が使用可能になります。
次に VS Code の拡張機能をインストールします。
- Docker
- Remote - Containers
使い方
コンテナ起動・接続の開発環境設定は、プロジェクトルートの.devcontainer/devcontainer.json
または.devcontainer.json
に設定します。
簡単なサンプルで説明します。
まず、コンテナの定義をdocker-compose.yml
ファイルで行います。
mkdir .devcontainer
touch .devcontainer/docker-compose.yml
version: '3'
services:
wordpress:
depends_on:
- mariadb
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: mariadb
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
mariadb:
image: mariadb:10.4
volumes:
- mariadb:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
volumes:
mariadb:
driver: local
Docker コンテナ起動・接続の設定を行います。
{
"name": "WordPress",
"dockerComposeFile": [
"docker-compose.yml"
],
"service": "wordpress",
"workspaceFolder": "/var/www/html",
"settings": {
},
"extensions": [
"bmewburn.vscode-intelephense-client"
]
}
dockerComposeFile
で compose ファイルの場所を指定します。
service
には、接続するサービス名を指定します。
workspaceFolder
には接続時のデフォルトパスを設定します。
settings
は接続コンテナの VS Code の設定が行えます。
extensions
は、接続コンテナにインストールする拡張機能を指定できます。
これで設定完了です。
コマンドパレットもしくは、ステータスバーの左下からReopen in Container
を選択します。
VS Code が再起動されコンテナの構築が始まります。
完了後、指定のコンテナに接続した状態で再開されます。
この状態でコンテナ内での開発が行えます。
サンプルでは 8000 ポートを割り当てているので、http://localhost:8000/ からサイトにアクセス可能です。
コンテナに接続した状態から接続を終了したい場合は、コマンドパレットもしくは、ステータスバーの左下からReopen Folder Locally
を選択します。
デフォルトの設定では、接続の終了やウィンドウを閉じるなどするとコンテナは停止します。
Tips
Tips1
コマンドパレットもしくは、ステータスバーの左下からAdd Development Container Configuration Files
を選択すると、設定済の開発環境設定(devcontainer.json
など)を選択してダウンロードできます。
これを起点に開発環境をカスタマイズしたり、設定方法の参考にできます。
Tips2
devcontainer.json
と同じ階層に.env
ファイルを設置することにより、Compose ファイルの変数を定義できます。
DB_USER=wordpress
DB_PASSWORD=wordpress
version: '3'
services:
wordpress:
depends_on:
- mariadb
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: mariadb
WORDPRESS_DB_USER: ${DB_USER}
WORDPRESS_DB_PASSWORD: ${DB_USER}
mariadb:
image: mariadb:10.4
volumes:
- mariadb:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: ${DB_USER}
MYSQL_PASSWORD: ${DB_USER}
volumes:
mariadb:
driver: local
コメント