docker-compose部署java服务

docker-compose部署java服务
分类:后端
标签: Spring Boot Java

目录结构

项目的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