kind: pipeline type: docker name: trytest clone: disable: true steps: - name: clone pull: if-not-exists image: alpine/git volumes: - name: sshkeys path: /root/.ssh commands: - echo $DRONE_GIT_SSH_URL - git clone $DRONE_GIT_SSH_URL . - git checkout $DRONE_COMMIT - name: restore-cache pull: if-not-exists image: drillster/drone-volume-cache volumes: - name: cache path: /cache settings: restore: true mount: - ./node_modules - name: build-front pull: if-not-exists image: node settings: mirror: https://docker.mirrors.ustc.edu.cn commands: - yarn install - yarn run build-test - name: rebuild-cache pull: if-not-exists image: drillster/drone-volume-cache volumes: - name: cache path: /cache settings: rebuild: true mount: - ./node_modules - name: build-image pull: if-not-exists image: plugins/docker privileged: true volumes: - name: certs path: /etc/docker/certs.d settings: mirror: https://docker.mirrors.ustc.edu.cn dockerfile: docker/test/Dockerfile repo: registry.happykit.net:5000/test/my-app registry: registry.happykit.net:5000 tags: ${DRONE_BUILD_NUMBER} username: admin password: admin - name: deploy-container pull: if-not-exists image: appleboy/drone-ssh settings: host: 172.16.113.10 username: root password: password port: 22 script: - docker login -u admin -p admin registry.happykit.net:5000 - docker pull registry.happykit.net:5000/test/my-app:${DRONE_BUILD_NUMBER} - list=$(docker ps -a| grep test-my-app* | awk '{print $1}') - test "$list" = "" && echo "none test-my-app containers running" || docker stop $list - docker run -d -v /data/my-app:/logs --privileged=true -l "traefik.http.routers.web-service.rule=Host(\`web.happykit.net\`)" -l "traefik.http.services.web-service.loadbalancer.server.port=8080" --network=app_network --name=test-my-app-${DRONE_BUILD_NUMBER} registry.happykit.net:5000/test/my-app:${DRONE_BUILD_NUMBER} trigger: branch: - master event: - push volumes: - name: sshkeys host: path: /root/.ssh - name: cache host: path: /tmp/cache - name: certs host: path: /etc/docker/certs.d