基于docker compose一键部署springboot项目

292 阅读1分钟

简单记录一下,谨防忘记。脚本只是雏形,有待完善

目录结构:

image.png

application.yml 公共配置文件:

DB_URL: 192.168.3.21
DB_PORT: 3306
DB_USERNAME: root
DB_PASSWORD: mysql@2025
DB_NAME: saas
REDIS_HOST: 192.168.3.21
REDIS_PORT: 6379
REDIS_PASSWORD: redis@2025
NACOS_HOST: 192.168.3.21
NACOS_PORT: 8848
MINIO_ENDPOINT: 192.168.3.21
MINIO_PORT: 9090
MINIO_ACCESS_KEY: admin
MINIO_SECRET_KEY: 12345678
MINIO_BUCKET: ias
ROCKETMQ_HOST: 192.168.3.21
ROCKETMQ_PORT: 9876
#IAS
SERVER_PORT: 8443

Dockerfile 文件:

FROM openjdk:8

MAINTAINER levi

ARG JAVA_OPTS

# 设置工作目录
WORKDIR /app

# 将 Spring Boot 的 jar 包复制到容器中
COPY ./jar/myapp.jar /app/app.jar

ENV JVM_OPTS="-XX:+UseG1GC -Xms512m -Xmx512m -Xmn256m"

# 暴露应用的端口号(例如 8080)
#EXPOSE 8443

#ENTRYPOINT exec java $JAVA_OPTS -jar ./app.jar
CMD ["sh", "-c", "java -jar ${JVM_OPTS} /app/app.jar"]
# 启动 Spring Boot 应用
#ENTRYPOINT ["java", "-jar", "/app/app.jar"]

```
FROM openjdk:8

MAINTAINER levi

ARG JAR_NAME

# 设置工作目录
WORKDIR /app

ENV JVM_OPTS="-XX:+UseG1GC -Xms512m -Xmx512m -Xmn256m"
ENV APP_NAME ${JAR_NAME}

# 将 Spring Boot 的 jar 包复制到容器中
COPY ./jar/${APP_NAME} /app/app.jar

# 暴露应用的端口号(例如 8080)
#EXPOSE 8443

#ENTRYPOINT exec java $JAVA_OPTS -jar ./app.jar
CMD ["sh", "-c", "java -jar ${JVM_OPTS} /app/app.jar"]
# 启动 Spring Boot 应用
#ENTRYPOINT ["java", "-jar", "/app/app.jar"]
```

docker-compose.yml 文件:

#version: '3.8'

services:
  app1:
    build:
      context: .
      dockerfile: ./app1/Dockerfile
    image: app1:1.0.0
    ports:
      - "8443:8443"
    volumes:
      - ./config/app1/application.yml:/app/config/application.yml
    container_name: app1
    restart: always

  app2:
    build:
      context: .
      dockerfile: ./app2/Dockerfile
    ports:
      - "8090:8090"
    volumes:
      - ./config/app2/application.yml:/app/config/application.yml
    container_name: app2
    restart: always

  app3:
    build:
      args:
        - JAR_NAME=app3.jar
      context: .
      dockerfile: ./app3/Dockerfile
    ports:
      - "8200:8200"
    volumes:
      - ./config/app3/application.yml:/app/config/application.yml
    container_name: app3
    restart: always

  app4:
    build:
      args:
        - JAR_NAME=app4.jar
      context: .
      dockerfile: ./app3/Dockerfile
    ports:
      - "8202:8202"
    volumes:
      - ./config/app4/application.yml:/app/config/application.yml
    container_name: app4
    restart: always

执行docker compose up -d,起飞啦