mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-09 04:30:20 +08:00
Use PostgreSQL as the only database backend across runtime, schema tooling, installation, Compose, and CI. Update regression tests and reject removed drivers explicitly.
92 lines
3.3 KiB
YAML
92 lines
3.3 KiB
YAML
# Aether 本地在线更新联调环境
|
|
# 使用当前源码构建一个 release-layout 测试镜像,专门验证管理后台一键更新。
|
|
#
|
|
# 启动:
|
|
# docker compose -f docker-compose.release-local.yml up -d --build
|
|
#
|
|
# 重置(删除测试 PostgreSQL 数据、/opt/aether/current 与历史版本目录):
|
|
# docker compose -f docker-compose.release-local.yml down -v
|
|
|
|
name: aether-release-local
|
|
|
|
services:
|
|
postgres:
|
|
# OCI index digest for the official multi-architecture postgres:15.19 image.
|
|
image: postgres:15.19@sha256:5f72c7b5bd616308ccfd2e74d6be16fb06364e5eecbb815fe9dc6ab9761d2111
|
|
container_name: aether-release-local-postgres
|
|
shm_size: ${POSTGRES_SHM_SIZE:-512mb}
|
|
environment:
|
|
POSTGRES_DB: aether
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: ${DB_PASSWORD:?set DB_PASSWORD in .env}
|
|
TZ: Asia/Shanghai
|
|
volumes:
|
|
- postgres_data:/var/lib/postgresql/data
|
|
command: >
|
|
postgres
|
|
-c idle_in_transaction_session_timeout=30000
|
|
-c tcp_keepalives_idle=30
|
|
-c tcp_keepalives_interval=10
|
|
-c shared_preload_libraries=pg_stat_statements
|
|
-c pg_stat_statements.track=all
|
|
-c pg_stat_statements.max=10000
|
|
-c shared_buffers=${POSTGRES_SHARED_BUFFERS:-1GB}
|
|
-c effective_cache_size=${POSTGRES_EFFECTIVE_CACHE_SIZE:-3GB}
|
|
-c work_mem=${POSTGRES_WORK_MEM:-16MB}
|
|
-c maintenance_work_mem=${POSTGRES_MAINTENANCE_WORK_MEM:-256MB}
|
|
healthcheck:
|
|
test: [ "CMD-SHELL", "pg_isready -U postgres" ]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 5
|
|
logging:
|
|
driver: local
|
|
options:
|
|
max-size: "100m"
|
|
max-file: "3"
|
|
compress: "true"
|
|
restart: unless-stopped
|
|
|
|
release-local-app:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.app.release-local
|
|
args:
|
|
AETHER_BUILD_VERSION: ${AETHER_RELEASE_LOCAL_VERSION:-v0.7.0}
|
|
AETHER_BUILD_TYPE: release
|
|
image: ${LOCAL_RELEASE_APP_IMAGE:-aether-app:release-local}
|
|
container_name: aether-release-local-app
|
|
env_file:
|
|
- ${AETHER_ENV_FILE:-.env}
|
|
environment:
|
|
TZ: Asia/Shanghai
|
|
AETHER_DATABASE_DRIVER: postgres
|
|
AETHER_DATABASE_URL: postgresql://postgres:${DB_PASSWORD:?set DB_PASSWORD in .env}@postgres:5432/aether
|
|
AETHER_RUNTIME_BACKEND: memory
|
|
AETHER_GATEWAY_DEPLOYMENT_TOPOLOGY: single-node
|
|
AETHER_GATEWAY_NODE_ROLE: all
|
|
AETHER_LOG_DESTINATION: ${AETHER_LOG_DESTINATION:-stdout}
|
|
AETHER_LOG_FORMAT: ${AETHER_LOG_FORMAT:-pretty}
|
|
AETHER_LOG_DIR: ${AETHER_LOG_DIR:-/opt/aether/logs}
|
|
AETHER_LOG_ROTATION: ${AETHER_LOG_ROTATION:-daily}
|
|
AETHER_LOG_RETENTION_DAYS: ${AETHER_LOG_RETENTION_DAYS:-7}
|
|
AETHER_LOG_MAX_FILES: ${AETHER_LOG_MAX_FILES:-30}
|
|
APP_PORT: ${AETHER_RELEASE_LOCAL_PORT:-18085}
|
|
AETHER_UPDATE_PROXY_URL: ${AETHER_UPDATE_PROXY_URL:-}
|
|
UPDATE_PROXY_URL: ${UPDATE_PROXY_URL:-}
|
|
AETHER_BASE_DIR: /opt/aether
|
|
AETHER_UPDATE_STRATEGY: self
|
|
AETHER_GATEWAY_AUTO_PREPARE_DATABASE: ${AETHER_GATEWAY_AUTO_PREPARE_DATABASE:-true}
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
ports:
|
|
- "${AETHER_RELEASE_LOCAL_PORT:-18085}:${AETHER_RELEASE_LOCAL_PORT:-18085}"
|
|
volumes:
|
|
- aether_release_local_root:/opt/aether
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
postgres_data:
|
|
aether_release_local_root:
|