feat(memos): add pgsql sidecar and unify db port

- Add PostgreSQL container to local and prod stacks with healthcheck
- Change external DB port from 5432 to 15432 in all env configs
- Rename env-lkc.cnf to db-lkc.cnf for consistency
- Add db-local.cnf for local PostgreSQL deployment
This commit is contained in:
2026-06-19 16:26:55 +08:00
parent 9c08233d4e
commit c55d90040c
7 changed files with 83 additions and 18 deletions
+1 -1
View File
@@ -3,4 +3,4 @@ DB_USER=postgres
DB_PASSWORD=Kevin0412PgSql DB_PASSWORD=Kevin0412PgSql
DB_DATANAME=memos-db DB_DATANAME=memos-db
DB_HOST=192.168.100.184 DB_HOST=192.168.100.184
DB_POST=5432 DB_POST=15432
+1 -1
View File
@@ -3,4 +3,4 @@ DB_USER=postgres
DB_PASSWORD=Kevin0412PgSql DB_PASSWORD=Kevin0412PgSql
DB_DATANAME=memos-db DB_DATANAME=memos-db
DB_HOST=192.168.10.61 DB_HOST=192.168.10.61
DB_POST=5432 DB_POST=15432
+1 -2
View File
@@ -2,6 +2,5 @@ DB_DRIVER=postgres
DB_USER=postgres DB_USER=postgres
DB_PASSWORD=Kevin0412PgSql DB_PASSWORD=Kevin0412PgSql
DB_DATANAME=memos-db DB_DATANAME=memos-db
#DB_HOST=192.168.100.184
DB_HOST=10.0.74.3 DB_HOST=10.0.74.3
DB_POST=5432 DB_POST=15432
+6
View File
@@ -0,0 +1,6 @@
DB_DRIVER=postgres
DB_USER=postgres
DB_PASSWORD=Kevin0412PgSql
DB_DATANAME=memos-db
DB_HOST=pgsql
DB_POST=15432
+1
View File
@@ -13,6 +13,7 @@
IMAGE_TAG_VER=0.29.1 IMAGE_TAG_VER=0.29.1
# 完整镜像引用(私有仓库示例:hub.tp229.com:3500/neosmemo/memos:${IMAGE_TAG_VER} # 完整镜像引用(私有仓库示例:hub.tp229.com:3500/neosmemo/memos:${IMAGE_TAG_VER}
IMAGE_TAG=neosmemo/memos:${IMAGE_TAG_VER} IMAGE_TAG=neosmemo/memos:${IMAGE_TAG_VER}
PGSQL_IMAGE_TAG=postgres:18.4
# ---------- 数据卷 ---------- # ---------- 数据卷 ----------
# 宿主机持久化目录,会挂载到容器 /var/opt/memos # 宿主机持久化目录,会挂载到容器 /var/opt/memos
+38 -9
View File
@@ -1,18 +1,47 @@
# run:: docker compose -p memos -f ./memos/local.stack.yml up -d # run:: docker compose -p memos --env-file ./memos/env.cfg --env-file ./memos/db-local.cnf -f ./memos/local.stack.yml up -d
services: services:
memos: memos:
image: neosmemo/memos:0.20.0 image: ${IMAGE_TAG}
#command: '--driver mysql --dsn root:Kevin%0412%Mysql@tcp(10.10.13.233:3306)/memos-db'
volumes: volumes:
- data:/var/opt/memos - ${Volumes_Path}/data:/var/opt/memos
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports: ports:
- '8230:5230' - "8230:5230"
container_name: memos container_name: memos_local
restart: always
environment: environment:
- MEMOS_DRIVER=postgres - MEMOS_DRIVER=${DB_DRIVER}
- MEMOS_DSN=postgresql://postgres:Kevin0412PgSql@192.168.100.184:5432/memos-db?sslmode=disable - MEMOS_DSN=user=${DB_USER} password=${DB_PASSWORD} dbname=${DB_DATANAME} host=${DB_HOST} port=${DB_POST} sslmode=disable
- TZ=Asia/Shanghai - TZ=Asia/Shanghai
pgsql:
image: ${PGSQL_IMAGE_TAG:-postgres:18.4}
container_name: memos_local_pgsql
restart: always
shm_size: 256mb
environment:
- POSTGRES_USER=${DB_USER:-postgres}
- POSTGRES_PASSWORD=${DB_PASSWORD}
- POSTGRES_DB=${DB_DATANAME:-memos-db}
- POSTGRES_HOST_AUTH_METHOD=scram-sha-256
- TZ=Asia/Shanghai
volumes:
- pgsql_data:/var/lib/postgresql/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "${PGSQL_PORT:-15432}:5432"
healthcheck:
test:
[
"CMD-SHELL",
"pg_isready -U ${DB_USER:-postgres} -d ${DB_DATANAME:-memos-db}",
]
interval: 10s
timeout: 5s
retries: 5
volumes: volumes:
data: pgsql_data:
+34 -4
View File
@@ -1,7 +1,9 @@
# path:: mkdir -pv /data/volumes/memos/data # path:: mkdir -pv /data/volumes/memos/data
# pull:: docker compose -p memos --env-file ./memos/env.cfg -f ./memos/prod.stack.yml pull
# run-61:: docker compose -p memos --env-file ./memos/env.cfg --env-file ./memos/db-61.cnf -f ./memos/prod.stack.yml up -d # run-61:: docker compose -p memos --env-file ./memos/env.cfg --env-file ./memos/db-61.cnf -f ./memos/prod.stack.yml up -d
# run-184:: docker compose -p memos --env-file ./memos/env.cfg --env-file ./memos/db-184.cnf -f ./memos/prod.stack.yml up -d # run-184:: docker compose -p memos --env-file ./memos/env.cfg --env-file ./memos/db-184.cnf -f ./memos/prod.stack.yml up -d
# run-lkc:: docker compose -p memos --env-file ./memos/env.cfg --env-file ./memos/env-lkc.cnf -f ./memos/prod.stack.yml up -d # run-lkc:: docker compose -p memos --env-file ./memos/env.cfg --env-file ./memos/env-lkc.cnf -f ./memos/prod.stack.yml up -d
# run-local:: docker compose -p memos --env-file ./memos/env.cfg --env-file ./memos/db-local.cnf -f ./memos/prod.stack.yml up -d
services: services:
memos: memos:
@@ -11,8 +13,8 @@ services:
- /etc/timezone:/etc/timezone:ro - /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro - /etc/localtime:/etc/localtime:ro
ports: ports:
- '5230:5230' - "5230:5230"
container_name: memos container_name: memos_app
restart: always restart: always
environment: environment:
- MEMOS_DRIVER=${DB_DRIVER} - MEMOS_DRIVER=${DB_DRIVER}
@@ -21,5 +23,33 @@ services:
#- MEMOS_DRIVER=mysql #- MEMOS_DRIVER=mysql
#- MEMOS_DSN=root:password@tcp(localhost)/memos_prod #- MEMOS_DSN=root:password@tcp(localhost)/memos_prod
- TZ=Asia/Shanghai - TZ=Asia/Shanghai
#volumes:
# data: pgsql:
image: ${PGSQL_IMAGE_TAG:-postgres:18.4}
container_name: memos_pgsql
restart: always
shm_size: 256mb
environment:
- POSTGRES_USER=${DB_USER:-postgres}
- POSTGRES_PASSWORD=${DB_PASSWORD}
- POSTGRES_DB=${DB_DATANAME:-memos-db}
- POSTGRES_HOST_AUTH_METHOD=scram-sha-256
- TZ=Asia/Shanghai
volumes:
- pgsql_data:/var/lib/postgresql/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "${DB_POST:-15432}:5432"
healthcheck:
test:
[
"CMD-SHELL",
"pg_isready -U ${DB_USER:-postgres} -d ${DB_DATANAME:-memos-db}",
]
interval: 10s
timeout: 5s
retries: 5
volumes:
pgsql_data: