44 lines
1.8 KiB
YAML
44 lines
1.8 KiB
YAML
# 只部署应用本身;Redis 已在宿主机 Docker 中运行,MySQL 暂不需要。
|
||
services:
|
||
app:
|
||
build:
|
||
context: .
|
||
dockerfile: Dockerfile
|
||
image: dev-toolbox:latest
|
||
container_name: dev-toolbox
|
||
restart: unless-stopped
|
||
ports:
|
||
- "8077:8077"
|
||
environment:
|
||
# 激活生产 profile(info 日志、关闭 H2 控制台)
|
||
SPRING_PROFILES_ACTIVE: prod
|
||
|
||
# Redis:容器内通过 host.docker.internal 访问宿主机上已发布的 6379
|
||
# 前提:宿主机运行的 Redis 容器已把端口映射出来(docker run 时带 -p 6379:6379)
|
||
REDIS_HOST: host.docker.internal
|
||
REDIS_PORT: "6379"
|
||
REDIS_PASSWORD: ""
|
||
REDIS_DATABASE: "0"
|
||
|
||
# 项目暂未使用数据库,用 H2 内存库避免依赖 MySQL;将来接入 MySQL 时删掉这三行,
|
||
# 改用 MYSQL_HOST/MYSQL_PORT/MYSQL_DATABASE/MYSQL_USERNAME/MYSQL_PASSWORD 即可
|
||
SPRING_DATASOURCE_DRIVER_CLASS_NAME: org.h2.Driver
|
||
SPRING_DATASOURCE_URL: "jdbc:h2:mem:dev_toolbox;MODE=MySQL;DB_CLOSE_DELAY=-1;DATABASE_TO_LOWER=TRUE"
|
||
SPRING_DATASOURCE_USERNAME: sa
|
||
SPRING_DATASOURCE_PASSWORD: ""
|
||
|
||
# 聚合数据 key:如需覆盖 yml 里的默认值,取消注释并填写(或写在同目录 .env 文件里)
|
||
# JUHE_WEATHER_KEY: ""
|
||
# JUHE_SOUP_KEY: ""
|
||
|
||
TZ: Asia/Shanghai
|
||
# 让容器能通过 host.docker.internal 访问宿主机(Linux 上必需)
|
||
extra_hosts:
|
||
- "host.docker.internal:host-gateway"
|
||
|
||
# 内存硬限制:4H4G 机器上给 app 1G 足够(堆 512m + 堆外/线程/元空间等)。
|
||
# 配合 Dockerfile 里的 -Xmx512m,触顶会被 cgroup OOM kill,让 Docker 重启。
|
||
# 调整 JVM 堆:覆盖 JAVA_OPTS 环境变量即可,无需改 Dockerfile
|
||
mem_limit: 1024m
|
||
mem_reservation: 512m
|