Files
gpt-load/docker-compose.yml
T
tbphp 69483c7109 fix(storage): 统一 DATA_DIR 目录准备 (#480)
* fix(storage): 统一 DATA_DIR 目录准备

* docs: 精简 DATA_DIR 部署说明

* fix(compose): 初始化 DATA_DIR 挂载权限

* fix(compose): 安全初始化绑定目录
2026-08-27 14:30:44 +08:00

52 lines
1.5 KiB
YAML

services:
gpt-load-data-init:
image: ghcr.io/tbphp/gpt-load:v2beta
user: "0:0"
entrypoint:
- /bin/sh
- -ec
- |
data_owner="$$(stat -c '%u' /app/data)"
if [ "$$data_owner" = "10001" ]; then
exit 0
fi
if [ -n "$$(find /app/data -mindepth 1 -maxdepth 1 -print -quit)" ]; then
echo "DATA_DIR is non-empty and not owned by UID 10001; refusing to change permissions" >&2
exit 1
fi
chown 10001:10001 /app/data
chmod 0700 /app/data
restart: "no"
volumes:
- ${DATA_DIR:-./data}:/app/data
gpt-load:
image: ghcr.io/tbphp/gpt-load:v2beta
# build:
# context: .
# dockerfile: Dockerfile
ports:
- "${BIND_ADDRESS:-${HOST:-127.0.0.1}}:${PORT:-3001}:${PORT:-3001}"
- "${OAUTH_CALLBACK_BIND_ADDRESS:-${HOST:-127.0.0.1}}:1455:1455"
- "${OAUTH_CALLBACK_BIND_ADDRESS:-${HOST:-127.0.0.1}}:54545:54545"
- "${OAUTH_CALLBACK_BIND_ADDRESS:-${HOST:-127.0.0.1}}:51121:51121"
env_file:
- .env
environment:
HOST: 0.0.0.0
PORT: ${PORT:-3001}
DATA_DIR: /app/data
depends_on:
gpt-load-data-init:
condition: service_completed_successfully
restart: always
volumes:
- ${DATA_DIR:-./data}:/app/data
stop_grace_period: ${CONTAINER_STOP_GRACE_PERIOD:-15s}
healthcheck:
test: wget -q --spider -T 10 -O /dev/null http://localhost:${PORT:-3001}/health
interval: 30s
timeout: 10s
retries: 3
start_period: 40s