Windows環境で開発を始めたいけど、Linux環境をどう用意すればいいかわからない… という方向けに、初心者でもできる 開発環境の構築手順 をまとめました。
本記事では以下をセットアップします。
選定技術一覧
- OS環境: Windows 11 + WSL2 (Ubuntu)
- エディタ: Visual Studio Code + Remote - WSL拡張機能
- DB: PostgreSQL (Dockerコンテナ)
- コンテナ管理: Docker / docker-compose
1. WSLのセットアップ
1-1. WSLの有効化(自動)
PowerShellを 管理者権限 で開き、以下を実行します。
実行後に 再起動 してください。
wsl --install
1-2. 手動で有効化
「Windowsの機能の有効化または無効化」で以下をチェックします。
- 「Linux用Windowsサブシステム」
- 「仮想マシンプラットフォーム」 (WSL2用)
設定後に再起動します。
1-3. WSL2をデフォルトに設定
wsl --set-default-version 2
1-4. バージョン確認
wsl --list --verbose
2. Ubuntuのセットアップ
2-1. 初期設定
初回起動時に ユーザ名 と パスワード を設定します。
2-2. パッケージ更新
sudo apt update
sudo apt upgrade
3. VS Codeのセットアップ
3-1. VS Code本体をインストール
公式ダウンロードページ(Windows版) より、Windows用インストーラをダウンロードし、インストールしてください。
3-2. WSL拡張機能を追加
VS Code起動後、「拡張機能」ビューで Remote - WSL を検索・インストールします。
(拡張機能の一覧画面で「Remote - WSL」と入力すれば表示されます。)
3-3. 起動確認
Ubuntu上で以下を実行し、現在のフォルダをVS Codeで開きます。
code .
3-4. 日本語化
以下の拡張機能を追加して再起動します。
- Japanese Language Pack for Visual Studio Code
4. DBコンテナの作成と利用
4-1. docker-compose.yml
以下の内容を docker-compose.yml として保存します。
services:
db: # サービス名(任意)
image: postgres # 使用するDockerイメージ(公式Postgres)
container_name: test_postgres # コンテナ名
restart: always # コンテナが停止した場合に自動再起動
environment: # 環境変数(Postgres設定)
POSTGRES_USER: test_user # DBユーザ
POSTGRES_PASSWORD: test_password # DBパスワード
POSTGRES_DB: test_DB # 初期作成するDB名
ports:
- "5432:5432" # ホスト:コンテナ のポートマッピング
volumes:
- postgres_data:/var/lib/postgresql/data # 永続化ボリューム
volumes:
postgres_data: # データを永続化するためのボリューム定義
起動コマンド:
docker-compose up -d
4-2. DBへアクセス
通常は以下のコマンドで、コンテナ内のPostgresへ接続できます。
docker exec -it test_postgres psql -U test_user -d test_DB
5. トラブルシューティング(docker exec が使えない場合)
5-1. コマンドが古い場合
docker exec が認識されない場合、Dockerのバージョンが古い可能性があります。
以下でバージョンを確認してください。
docker --version
5-2. Docker未インストールの場合
Ubuntu上で以下を実行し、Dockerとdocker-composeを導入してください。
sudo apt update
sudo apt install -y docker.io docker-compose
sudo usermod -aG docker $USER
5-3. コンテナが起動していない場合
まずコンテナの状態を確認します。
docker ps -a
もしコンテナが起動していなければ、以下で開始します。
docker start test_postgres
5-4. docker exec を使わず接続する方法
docker execが使えない場合でも、ホストから直接psqlで接続できます。
psql -h localhost -p 5432 -U test_user -d test_DB
※psql コマンドが使用できない場合
psql: command not found のようなエラーが出る場合は、PostgreSQLクライアントがインストールされていません。
Ubuntu環境に以下を追加してください
sudo apt update
sudo apt install -y postgresql-client
6. 初心者が詰まりやすいポイント
6-1. PowerShellを管理者で開いていない
管理者権限でPowerShellを開かないと、以下のコマンドが失敗します。
wsl --install
6-2. Dockerインストール後に再ログインしていない
以下のコマンドでユーザをdockerグループに追加しても、
sudo usermod -aG docker $USER
6-3. docker-compose の呼び方が環境で違う
環境によっては docker-compose ではなく、以下のように スペースあり で呼び出す必要があります。
docker compose up -d
6-4. ポート5432が他のDBで使用中
PostgreSQLがすでにインストールされている環境などでは、ポートが競合することがあります。
その場合は docker-compose.yml の ports を変更してください。
ports:
- "5433:5432"
まとめ
- WSL2 + Ubuntu でLinux開発環境を構築
- VS Codeと拡張機能でシームレスに開発可能
- DockerコンテナでPostgres DBを利用し、
docker-composeまたはpsqlでアクセス可能 - 初心者でも詰まりやすいポイントを押さえればスムーズに環境構築できる