0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【初心者向け】WindowsでWSL2 + Ubuntu + VS Code + Docker(Postgres)を使った開発環境構築

Posted at

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.ymlports を変更してください。

ports:
  - "5433:5432"

まとめ

  • WSL2 + Ubuntu でLinux開発環境を構築
  • VS Codeと拡張機能でシームレスに開発可能
  • DockerコンテナでPostgres DBを利用し、docker-compose または psql でアクセス可能
  • 初心者でも詰まりやすいポイントを押さえればスムーズに環境構築できる
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?