目录结构
项目的application-prod.yaml
spring:
datasource:
url: ${DB_URL}
username: ${DB_USERNAME}
password: ${DB_PASSWORD}
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
springdoc:
api-docs:
enabled: false
swagger-ui:
enabled: false
你的服务目录/
├─ docker-compose.yml # 配置文件
├─ app.jar # 你的 Java 项目 Jar 包
└─ .env #环境变量
docker-compose.yml
# 上传服务器目录后,配置 .env,执行 docker-compose up -d
services:
blog:
image: eclipse-temurin:17-jre-alpine
container_name: blog
restart: always # 比 on-failure 更适合生产
ports:
- "${APP_PORT:-8080}:8080"
env_file:
- .env
environment:
SPRING_PROFILES_ACTIVE: prod
TZ: Asia/Shanghai
volumes:
- ./app.jar:/app/app.jar:ro
working_dir: /app
command:
- java
- -Xms256m
- -Xmx512m
- -Djava.security.egd=file:/dev/./urandom
- -jar
- app.jar
.env
docker中运行java服务,mysql,redis的连接地址需要使用服务器的内网ip地址
APP_PORT=8080
# 阿里云 RDS / 自建 MySQL(容器访问宿主机可用 host.docker.internal,Linux 需 extra_hosts 或填公网/内网 IP)
DB_URL=jdbc:mysql://内网ip:3306/blog?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
DB_USERNAME=root
DB_PASSWORD=你的密码
查看启动日志
docker logs -f blog