💽
【簡単】GitHub Codespace内の開発環境でPostgresを使えるようにする
どんなときに何をしたいのか
GitHub Codespaces
でWeb開発をするときに、開発環境にDBサーバがほしい。
どうやってするのか
-
Docker Compose
を使ってPostgres
サーバを立ち上げる。 - Codespaces内の環境はそれ自体がコンテナであることに注意。コンテナ内にDockerコンテナを作成する
Docker in Docker(dind)
な環境にする。 - dindはVS Codeの拡張機能
VS Code Dev Container
を使って簡単に実現することができる。dindのための設定ファイルを自分で作る必要はなく、Microsoft公式の設定ファイルを使えば良い。
やってみよう
shell
npx tiged microsoft/vscode-dev-containers/containers/docker-in-docker/.devcontainer ./.devcontainer
- codespaceをリビルドする。
Ctrl + Shift + P
でコマンドパレットを開いてからCodespaces: Rebuild Container
と入力してEnterを押下する。しばし待機。 - リビルドが終わってcodespaceが再起動したら、
docker
コマンドが使える状態になっている。ターミナルを開いてdocker-compose.yml
を作成する。
shell
touch docker-compose.yml
- docker-compose.ymlを以下のように編集する。
docker-compose.yml
version: '3.7'
services:
postgres:
image: postgres:latest
restart: always
environment:
POSTGRES_USER: username
POSTGRES_PASSWORD: password
PGPASSWORD: password
POSTGRES_DB: app
TZ: "Asia/Tokyo"
ports:
- 5432:5432
volumes:
- postgres:/var/lib/postgresql/data
volumes:
postgres:
- コンテナを起動する。ターミナルを開いて以下のコマンドを入力しEnterを押下する。
shell
docker compose up -d
終わり!
接続文字列はこうなります。
postgres://username:password@postgres:5432/app
Discussion