Gitlab runner的使用示例(二):Maven + Docker 自动化构建与部署

Gitlab runner的使用示例(二):Maven + Docker 自动化构建与部署

在本篇文章中,我们将详细解析一个典型的 GitLab CI/CD 配置文件(gitlab-ci.yml),该文件主要用于通过 Maven 构建 Java 应用,并使用 Docker 容器化部署。

配置文件整体长这样:

image: maven:3.8.4-openjdk-17

stages:
  - build
  - deploy

variables:
  DOCKER_IMAGE: "achun-gallery-image"
  DOCKER_CONTAINER_NAME: "achun-gallery-container"

# 构建阶段:Maven 打包
build-job:
  stage: build
  script:
    - mvn clean install -DskipTests
    - cd achun-gallery-app
    - mvn clean package -DskipTests
  tags:
    - m5_service
  only:
    - main
  artifacts:
    paths:
      - achun-gallery-app/target/**

# 部署阶段:使用 Docker 启动项目
deploy-job:
  stage: deploy
  script:
    - docker stop $DOCKER_CONTAINER_NAME || true
    - docker rm $DOCKER_CONTAINER_NAME || true
    - cd achun-gallery-app
    - docker build -t $DOCKER_IMAGE .
    - docker run -d -v /data/logs/:/data/logs -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro --restart always --name $DOCKER_CONTAINER_NAME -p 9519:9519 $DOCKER_IMAGE
  tags:
    - m5_service
  only:
    - main
  dependencies:
    - build-job
  artifacts:
    paths:
      - achun-gallery-app/target/**

下面会逐步解释各个部分。

1. 基本镜像选择

image: maven:3.8.4-openjdk-17

在 GitLab CI/CD 中,image 用于指定 CI/CD 流水线运行时使用的基础镜像。这里我们选择的是 maven:3.8.4-openjdk-17,这是一个预装了 Maven 3.8.4 和 OpenJDK 17 的官方 Docker 镜像,适合构建基于 Java 的 Maven 项目。

解释:

  • Maven:负责项目的构建与管理,执行 mvn 命令。
  • OpenJDK 17:项目使用的 Java 版本,确保代码可以在此 JDK 上编译和运行。

2. 定义阶段(stages)

stages
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑风风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值