docker编写java的jar步骤
all-docker/
├── docker-compose.yml
├── a/
│ ├── Dockerfile
│ └── a.jar
└── b/
├── Dockerfile
└── b.jar
生成Docker打包部署文件
项目结构说明
项目根目录包含docker-compose.yml
和两个子目录a/
、b/
,分别存放服务A和服务B的代码及Docker配置。目标是通过Docker Compose统一构建和部署这两个服务。
配置服务A的Dockerfile (a/Dockerfile
)
# 使用官方Java基础镜像
FROM openjdk:17-jdk-slim# 复制JAR文件到容器
COPY a.jar /app/a.jar# 指定启动命令
ENTRYPOINT ["java", "-jar", "/app/a.jar"]
配置服务B的Dockerfile (b/Dockerfile
)
# 使用官方Java基础镜像
FROM openjdk:17-jdk-slim# 复制JAR文件到容器
COPY b.jar /app/b.jar# 指定启动命令
ENTRYPOINT ["java", "-jar", "/app/b.jar"]
编写docker-compose.yml
version: '3.8'services:service-a:build: ./a # 指向服务A的Dockerfile目录container_name: service-aports:- "8080:8080" # 假设服务A暴露8080端口restart: unless-stoppedservice-b:build: ./b # 指向服务B的Dockerfile目录container_name: service-bports:- "8081:8081" # 假设服务B暴露8081端口restart: unless-stopped
操作步骤
构建镜像
在项目根目录执行以下命令,构建所有服务的Docker镜像:docker-compose build
启动服务
启动所有容器并运行服务:docker-compose up -d
验证服务
检查容器状态:docker-compose ps
访问服务A的接口(如
http://localhost:8080
)和服务B的接口(如http://localhost:8081
)。
注意事项
端口冲突
确保docker-compose.yml
中定义的端口与本地或其他服务无冲突。环境变量
如需动态配置,可在docker-compose.yml
中添加environment
字段:service-a:environment:- SPRING_PROFILES_ACTIVE=prod
日志查看
调试时可通过以下命令查看实时日志:docker-compose logs -f service-a
生成Docker打包部署文件
项目结构说明
项目根目录包含docker-compose.yml
和两个子目录a/
、b/
,分别存放服务A和服务B的代码及Docker配置。目标是通过Docker Compose统一构建和部署这两个服务。
配置服务A的Dockerfile (a/Dockerfile
)
# 使用官方Java基础镜像
FROM openjdk:17-jdk-slim# 复制JAR文件到容器
COPY a.jar /app/a.jar# 指定启动命令
ENTRYPOINT ["java", "-jar", "/app/a.jar"]
配置服务B的Dockerfile (b/Dockerfile
)
# 使用官方Java基础镜像
FROM openjdk:17-jdk-slim# 复制JAR文件到容器
COPY b.jar /app/b.jar# 指定启动命令
ENTRYPOINT ["java", "-jar", "/app/b.jar"]
编写docker-compose.yml
version: '3.8'services:service-a:build: ./a # 指向服务A的Dockerfile目录container_name: service-aports:- "8080:8080" # 假设服务A暴露8080端口restart: unless-stoppedservice-b:build: ./b # 指向服务B的Dockerfile目录container_name: service-bports:- "8081:8081" # 假设服务B暴露8081端口restart: unless-stopped
操作步骤
构建镜像
在项目根目录执行以下命令,构建所有服务的Docker镜像:docker-compose build
启动服务
启动所有容器并运行服务:docker-compose up -d
验证服务
检查容器状态:docker-compose ps
访问服务A的接口(如
http://localhost:8080
)和服务B的接口(如http://localhost:8081
)。
注意事项
端口冲突
确保docker-compose.yml
中定义的端口与本地或其他服务无冲突。环境变量
如需动态配置,可在docker-compose.yml
中添加environment
字段:service-a:environment:- SPRING_PROFILES_ACTIVE=prod
日志查看
调试时可通过以下命令查看实时日志:docker-compose logs -f service-a