やりたいこと
n8n(IFTTTみたいな自動化フローをつくれるやつ)をDocker上に構築して遊んでみたい
Postgreが使えるみたいなので、勉強もかねて一緒に構築してみたい
compose.yaml
結論、これでいける
version: "3.8" services: n8npostgres: image: postgres:16 restart: always environment: - POSTGRES_USER - POSTGRES_PASSWORD - POSTGRES_DB - POSTGRES_NON_ROOT_USER - POSTGRES_NON_ROOT_PASSWORD volumes: - ~/n8n/db_storage:/var/lib/postgresql/data - ~/n8n/init-data.sh:/docker-entrypoint-initdb.d/init-data.sh healthcheck: test: - CMD-SHELL - pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB} interval: 5s timeout: 5s retries: 10 networks: - InternalNW n8n: image: docker.n8n.io/n8nio/n8n restart: always environment: - DB_TYPE=postgresdb - DB_POSTGRESDB_HOST=n8npostgres - DB_POSTGRESDB_PORT=5432 - DB_POSTGRESDB_DATABASE=${POSTGRES_DB} - DB_POSTGRESDB_USER=${POSTGRES_NON_ROOT_USER} - DB_POSTGRESDB_PASSWORD=${POSTGRES_NON_ROOT_PASSWORD} - TZ=Asia/Tokyo - GENERIC_TIMEZONE=Asia/Tokyo - N8N_PORT=5678 - N8N_PROTOCOL=https - N8N_HOST - WEBHOOK_URL=https://${N8N_HOST} - WEBHOOK_TUNNEL_URL=https://${N8N_HOST}/ - VUE_APP_URL_BASE_API=https://${N8N_HOST} - N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true links: - n8npostgres volumes: - ~/n8n/n8n_storage:/home/node/.n8n depends_on: n8npostgres: condition: service_healthy ports: - 5678:5678 networks: - InternalNW networks: InternalNW: {}
POSTGRES_USER=postgres POSTGRES_PASSWORD=postgres POSTGRES_DB=n8n POSTGRES_NON_ROOT_USER=postgres POSTGRES_NON_ROOT_PASSWORD=postgres N8N_HOST=[アクセスしに行くホスト名]
DBとn8nのユーザデータを永続化するために、~/n8n/にマウントしてる
プロキシ立てるなら、N8N_HOSTを変更すればおk
躓いたところ
n8nのコンテナからpostgresにアクセスできなくて、Web Guiが表示されてなかったけど内部NW作ったらいけた
多分次に構築するとき100%忘れるから備忘録的においておく