.gitlab-ci.yml制作镜像推送到私仓的脚本(maven工程)
注意 根目录下需要有 dockerFile 文件before_script:- echo "before_script..."- docker version# DOCKER_USER DOCKER_PASSWORD DOCKER_REGISTRY 这些变量需要在gitlab上有- docker login -u ${DOCKER_USER} -p ${DOCKER_PASSWORD} ${DOC
·
注意 根目录下需要有 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
更多推荐
已为社区贡献2条内容
所有评论(0)