n8n+PostgreSQLをDocker Composeで起動する
バックエンドをPostgreSQLにしたn8nをDocker Composeで起動する方法をメモします。尚、Docker Composeでn8nを起動する手順は公式サイトのDocker-Composeに記載されています。
検証環境
対象 |
バージョン |
Ubuntu |
24.04.3 LTS |
Docker |
28.5.1 |
n8n |
1.115.3 |
postgres |
16 |
設定ファイル例
以下のdocker-compose.yml
と.env
を同一ディレクトリに保存し、docker compose up -d
を実行します。暫く待つとhttp://ADDRESS:5678
でn8nが起動します。
docker-compose.yml |
---|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 | volumes:
db_storage:
n8n_storage:
services:
postgres:
image: postgres:16
restart: always
environment:
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_NON_ROOT_USER==${POSTGRES_NON_ROOT_USER}
- POSTGRES_NON_ROOT_PASSWORD=${POSTGRES_NON_ROOT_PASSWORD}
volumes:
- db_storage:/var/lib/postgresql/data
- ./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
n8n:
image: docker.n8n.io/n8nio/n8n:1.115.3
restart: always
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
- DB_POSTGRESDB_USER=${POSTGRES_NON_ROOT_USER}
- DB_POSTGRESDB_PASSWORD=${POSTGRES_NON_ROOT_PASSWORD}
- N8N_SECURE_COOKIE=false
ports:
- 5678:5678
links:
- postgres
volumes:
- n8n_storage:/home/node/.n8n
depends_on:
postgres:
condition: service_healthy
|
.env |
---|
1
2
3
4
5
6
7
8
9
10
11
12 | POSTGRES_HOST=postgres
POSTGRES_PORT=5432
POSTGRES_DB=n8n_db
POSTGRES_USER=n8n_root
POSTGRES_PASSWORD=n8n_rootpass
POSTGRES_NON_ROOT_USER=n8n_user
POSTGRES_NON_ROOT_PASSWORD=n8n_password
SUBDOMAIN=n8n-poc
DOMAIN_NAME=example.net
GENERIC_TIMEZONE=Asia/Tokyo
|