kind: pipeline type: docker name: SmartOpsWeb steps: - name: build-package image: registry.cn-chengdu.aliyuncs.com/claywang/node:16.20.0 volumes: - name: cache path: /drone/src/node_modules commands: - export CI=false - mkdir -p /app/build/$DRONE_REPO_NAME - rm -rf /app/build/$DRONE_REPO_NAME/* - cp deployment.yml /app/build/$DRONE_REPO_NAME/ - cp Dockerfile /app/build/$DRONE_REPO_NAME/ - cp .dockerignore /app/build/$DRONE_REPO_NAME/ - cp default.conf /app/build/$DRONE_REPO_NAME/ - cp docker.sh /app/build/$DRONE_REPO_NAME/ - cp nginx.conf /app/build/$DRONE_REPO_NAME/ - npm -v - mkdir -p ./node_modules - export NODE_MODULES_PATH=`pwd`/node_modules # - npm config set registry https://registry.npmmirror.com # - set NODE_OPTIONS=--openssl-legacy-provider # - npm install - npm run build - echo $NODE_MODULES_PATH - cp -r dist /app/build/$DRONE_REPO_NAME - name: build-docker # 制作docker镜像 image: registry.cn-chengdu.aliyuncs.com/claywang/docker # 使用官方docker镜像 volumes: # 将容器内目录挂载到宿主机 - name: docker path: /var/run/docker.sock # 挂载宿主机的docker commands: # 定义在Docker容器中执行的shell命令 - sed -i 's/$REGISTRY/'"$REGISTRY"'/' deployment.yml - sed -i 's/$REGISTRY_NAMESPACE/'"$REGISTRY_NAMESPACE"'/' deployment.yml - sed -i 's/$DRONE_REPO_NAME/'"$DRONE_REPO_NAME"'/' deployment.yml - sed -i 's/$DRONE_COMMIT/'"$DRONE_COMMIT"'/' deployment.yml # docker登录,不能在脚本中登录,并且不能使用docker login -u -p - chmod +x docker.sh - sh docker.sh # 执行完脚本删除本次制作的docker镜像,避免多次后当前runner空间不足 # - docker run -d -p 8080:80 # - docker rmi -f $(docker imag.es | grep $DRONE_REPO_NAME | awk '{print $3}') volumes: - name: cache host: path: /home/SmartOpsWeb/cache - name: config # k8s对接的配置文件 - name: docker # 宿主机中的docker host: path: /var/run/docker.sock trigger: branch: - test event: - push