注意 根目录下需要有 dockerFile 文件

before_script:
  - echo "before_script..."
  - docker version
  # DOCKER_USER DOCKER_PASSWORD DOCKER_REGISTRY 这些变量需要在gitlab上有
  - docker login -u ${DOCKER_USER} -p ${DOCKER_PASSWORD} ${DOCKER_REGISTRY}
  -
stages:
  - test
  - build
  - deploy
deploy:
  stage: deploy
  tags:
    # 使用的 runner
    - shell
  script:
    - echo "starting build project..."
    - mvn clean package -DskipTests=true
    - pwd
    - ls -a
    - echo "building image..."
    # 获取 name
    - export ARTIFACT_NAME=$(cat pom.xml | grep "<name>" | head -1 | cut -d">" -f2 | cut -d"<" -f1 | awk '{$1=$1;print}')
    - echo ${ARTIFACT_NAME}
    # 获取 version
    - export VERSION=$(cat pom.xml | grep "<version>" | head -2 |  tail -1 | cut -d">" -f2 | cut -d"<" -f1 | awk '{$1=$1;print}')
    - echo ${VERSION}
    - cp target/${ARTIFACT_NAME}-${VERSION}.jar ./app.jar
    - docker build -t ${DOCKER_REGISTRY}/${ARTIFACT_NAME}:${VERSION} .
    - echo "building image success"
    - echo "pushing image..."
    - docker push ${DOCKER_REGISTRY}/${ARTIFACT_NAME}:${VERSION}
    - echo "push success"
    - echo "delete image..."
    - docker rmi ${DOCKER_REGISTRY}/${ARTIFACT_NAME}:${VERSION}
    - echo "delete images success"
  only:
    # 在哪个分支有效
    - master
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐