.gitlab-ci.yml 示例文件

stages: #介绍工作流

  • npm_build
  • image_build

variables: #配置环境变量
HARBOR: “xxxx.com” #替换成自己的镜像仓库地址
DOCKER_REPO: “candidates” #目录
IMAGE_NAME: " xxx_cloud" #镜像名称
IMAGE_FULL_NAME: “$ HARBOR/$ DOCKER_REPO/$IMAGE_NAME” #仓库地址

npm_build: #步骤 一
stage: npm_build #前端打包
image: node:16 # 使用包含Node.js的镜像
script: #脚本命令
- echo “Installing dependencies…” #打印输出语句
- npm install --force # 安装依赖
- echo “Building vue2 project…” #打印输出语句
- npm run build # 构建项目
artifacts:
paths:
- dist/ #要保留的目录
expire_in: 1 hour # 调整过期时间以适应实际需求
tags:
- cloud-runner #打标签

image_build: #步骤二
stage: image_build #镜像构建
image: quay.io/podman/stable
needs: [ npm_build ] #前置条件
before_script:
- export TAGS_OPT=“$ (date +‘%Y%m%d’)-$ (date +‘%s’)” # 用于给Docker镜像打上唯一标识的标签
- podman login -u $ HARBOR_USER -p $HARBOR_PASSWORD $HARBOR # 登录Harbor
script:
- echo “Building Docker image with tag $IMAGE_FULL_NAME: $TAGS_OPT…” # 打印信息
- podman build -t $IMAGE_FULL_NAME: $TAGS_OPT --build-arg TZ=“Asia/Shanghai” .
- echo “Pushing Docker image $IMAGE_FULL_NAME: $ TAGS_OPT to registry…” # 打印信息
- podman push $ IMAGE_FULL_NAME: $ TAGS_OPT # 打印信息
- echo “Removing Docker image $IMAGE_FULL_NAME from local machine…”
- podman rmi $IMAGE_FULL_NAME: $TAGS_OPT #删除镜像
tags:
- cloud-runner

要在 CI/CD Variables 中配置 HARBOR_USER 、HARBOR_PASSWORD 两个环境变量
若果没有权限执行报这个错误:
Error: configure storage: mount /var/lib/containers/storage/overlay:/var/lib/containers/storage/overlay, flags: 0x1000: permission

解决方法:进入vi /etc/gitlab-runner/config.toml 找到自己创建的 runner 修改: privileged = true

你可能感兴趣的:(gitlab,gitlab,ci/cd)