Skip to content

温馨提示

通过 Docker Compose 编排项目的 JAR 包,实现一键部署。使用 Dockerfile 构建应用的镜像,并通过文件定义服务依赖和网络配置。

准备工作

确保以下工具已安装:

打包项目

执行以下命令编译打包项目:

js
mvn clean package

打包后会在 target 目录下生成一个 JAR 文件,例如 xiaomayi-elevue.jar

温馨提示

  1. 需要明确的是,项目编译打包前,需提前配置包括但不限于:数据库、Redis 等相关内容。

  2. 编译打包本章节不做详细扩展和介绍,编译打包完整操作流程请查阅 打包项目 章节

创建构建文件

在项目根目录下创建 Dockerfile,用于构建应用的 Docker 镜像:

js
# 基础镜像
FROM openjdk:17-jre-alpine
# 维护作者
MAINTAINER 单体架构
# 设置默认时区
ENV TZ=Asia/Shanghai
# 创建目录
RUN mkdir -p /opt/apps
# 指定工作区
WORKDIR /opt/apps
# 添加应用JAR包到容器对应目录下
ADD xiaomayi-elevue.jar /opt/apps
# 暴露容器端口号
EXPOSE 8081
# 容器启动之后执行的命令,参数使用逗号隔开,java -jar /opt/apps/xiaomayi-elevue.jar 即启动jar
ENTRYPOINT ["java","-jar","xiaomayi-elevue.jar"]

创建部署文件

在项目根目录下创建 docker-compose.yml 文件,定义应用及其依赖服务:

js
version: '3.7'

# 应用服务
services:
  # 服务名称
  xiaomayi-elevue:
    # 镜像名称
    image: xiaomayi-elevue
    # 容器名称
    container_name: xiaomayi-elevue
    # 构建镜像
    build:
      context: ./
      dockerfile: Dockerfile
    # 将容器运行在特权模式下,意味着容器内的进程将具
    # 有访问宿主机的权限,包括文件系统、设备和系统功能等
    privileged: true
    # 指定容器中运行的用户
    user: root
    # 启动策略为始终重启
    restart: always
    # 设置网络模式为host模式
    network_mode: host
    # 端口映射
    ports:
      - 8081:8081
    # 文件挂载
    volumes:
      - ./logs:/data/java/logs
      - ./upload:/data/java/uploads
    # 日志配置
    logging:
      driver: "json-file"
      options:
        max-size: "500m"
        max-file: "10"

构建并启动服务

在项目根目录下运行以下命令,使用 Docker Compose 构建镜像并启动服务:

js
docker-compose up -d

如果需要停止服务,可以运行以下命令:

js
docker-compose down

温馨提示

应用部署成功后,即可通过服务有效的地址验证服务是否正确部署并对外提供接口服务。

总结

通过 Docker Compose,你可以轻松部署项目及其依赖服务。使用 Dockerfile 构建应用的镜像,并通过 docker-compose.yml 文件定义服务编排,实现一键部署和管理。这种方法非常适合开发、测试和生产环境。

小蚂蚁云团队 · 提供技术支持

小蚂蚁云 新品首发
新品首发,限时特惠,抢购从速! 全场95折
赋能开发者,助理企业发展,提供全方位数据中台解决方案。
获取官方授权