version: '3'
services:
db:
image: postgres:16
volumes:
- ./data/postgres:/var/lib/postgresql/data
ports:
- "5432:5432"
restart: unless-stopped
environment:
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_DB=${POSTGRES_DATABASE}
app:
image: joplin/server:latest
depends_on:
- db
ports:
- "22300:22300"
restart: unless-stopped
environment:
- APP_PORT=22300
- APP_BASE_URL=${APP_BASE_URL}
- DB_CLIENT=pg
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DATABASE=${POSTGRES_DATABASE}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PORT=${POSTGRES_PORT}
- POSTGRES_HOST=db
POSTGRES_USER=jpuser POSTGRES_PASSWORD=myPassw0rd POSTGRES_DATABASE=joplindb POSTGRES_PORT=5432 APP_BASE_URL=http://192.168.11.234:22300
docker compose up -ddb-1 | 2025-08-21 04:00:00.029 UTC [37] WARNING: database "joplindb" has a collation version mismatch db-1 | 2025-08-21 04:00:00.029 UTC [37] DETAIL: The database was created using collation version 2.36, but the operating system provides version 2.41. db-1 | 2025-08-21 04:00:00.029 UTC [37] HINT: Rebuild all objects in this database that use the default collation and run ALTER DATABASE joplindb REFRESH COLLATION VERSION, or build PostgreSQL with the right library version.
docker compose exec -it db psql -U jpuser -d joplindb輸入
ALTER DATABASE joplindb REFRESH COLLATION VERSION;
這樣就可以解決