kind: pipeline # 定义一个管道 type: docker # 当前管道的类型 name: build # 当前管道的名称 steps: # 定义管道的执行步骤 # - name: build-project # 步骤名称 # image: node:18-bullseye # 当前步骤使用的镜像 # volumes: # - name: node_modules # path: /drone/src/node_modules # commands: # 当前步骤执行的命令 # - pwd # - npm config set registry https://registry.npm.taobao.org # - npm i - name: build-tags image: yxs970707/drone-web-tags depends_on: [clone] settings: tags: - latest - name: loading cache # 加载缓存 pull: if-not-exists # 如果镜像不存在则拉取,免去每次都要重新下载 image: drillster/drone-volume-cache volumes: - name: cache path: /cache settings: restore: true mount: - ./nugetpackages - name: loading npm cache image: node volumes: - name: npm-cache path: /drone/src/node_modules commands: - mkdir -p ./node_modules - export NODE_MODULES_PATH=`pwd`/node_modules - npm config set registry https://registry.npm.taobao.org - npm i - echo $NODE_MODULES_PATH - name: build-image pull: if-not-exists # 如果镜像不存在则拉取,免去每次都要重新下载 image: plugins/docker depends_on: [loading npm cache] settings: username: from_secret: docker_username password: from_secret: docker_passwd dockerfile: Dockerfile mirror: https://fpswa5tm.mirror.aliyuncs.com registry: https://git.liliyamol.cn:8081 repo: git.liliyamol.cn:8081/mol/mol-robot --- kind: pipeline # 定义一个管道 type: docker # 当前管道的类型 name: deploy # 当前管道的名称 depends_on: - build clone: disable: true steps: - name: deploy-project image: appleboy/drone-ssh settings: host: from_secret: host username: from_secret: server_username # 使用secrets key: from_secret: server_key port: 22 command_timeout: 2m secrets: [docker_username, docker_passwd] script: - echo ==-----==开始部署==-----== - docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWD git.liliyamol.cn:8081 - docker pull git.liliyamol.cn:8081/mol/mol-robot:latest - list=$(docker ps -a | grep mol-robot* | awk '{print $1}') - test "$list" = "" && echo "none mol-robot containers running" || docker stop $list && docker container rm $list # 过滤出dockerImages的id, 删除none镜像 - docker run -d -p 16808:8080 --name=mol-robot_${DRONE_BUILD_NUMBER} --env-file /mnt/data/opt/mol-robot/.env git.liliyamol.cn:8081/mol/mol-robot:latest - docker rmi $(docker images | grep "none" | awk '{print $3}') - echo ==-----==部署成功==-----== # 挂载本地磁盘路径 volumes: - name: cache host: path: /tmp/drone-docker-cache - name: npm-cache host: path: /var/lib/npm/cache