ようやくLaravel9に触れる機会が訪れました。
postgresを使いたかったので、いつものように、
docker-compose.ymlを変更しようと思いきや、
sail:install
なるものを発見。
これにpostgresが対応しちょるんですね。使ってみることに。
sailを起動
sail経由でインストールに必要な、docker-compose.ymlを書き出すみたいなので、まずインスコすぐにsailを起動します。
sail up -d
sail install を実行
sail artisan sail:install --with=mysql,redis,memcached,meilisearch,mailhog,selenium,pgsql
標準インストールされたものに、pqsqlを追記しました。
docker-compose.ymlにpostgresのコンテナ情報が追記されます。
pgsql:
image: 'postgres:14'
ports:
- '${FORWARD_DB_PORT:-5432}:5432'
environment:
PGPASSWORD: '${DB_PASSWORD:-secret}'
POSTGRES_DB: '${DB_DATABASE}'
POSTGRES_USER: '${DB_USERNAME}'
POSTGRES_PASSWORD: '${DB_PASSWORD:-secret}'
volumes:
- 'sail-pgsql:/var/lib/postgresql/data'
- './vendor/laravel/sail/database/pgsql/create-testing-database.sql:/docker-entrypoint-initdb.d/10-create-testing-database.sql'
networks:
- sail
healthcheck:
test: ["CMD", "pg_isready", "-q", "-d", "${DB_DATABASE}", "-U", "${DB_USERNAME}"]
retries: 3
timeout: 5s
sailを再up
restartだとdocker-composeの変更が反映されないので、
sail down
sail up
で再起動を行うとpostgresコンテナも一緒に立ち上がります。
mysqlなど、コンテナの読み込み可否もこのコマンド一発で調整できるので必要なものだけに絞ってあげても良いかも。
絞ったりした直後はdocker-composeの関係え、sail down でコンテナがうまく落ちないので、docker側でコンテナを落として上げる必要があるかもです。
2023/03/08 追記
laravel 9以降は以下で簡単にpostgresをインストールできるみたいですね。
sail artisan sail:install