kind: pipeline type: docker name: build-and-push trigger: branch: - main - develop event: - push steps: # 构建并推送后端镜像 - name: build-push-backend image: docker:dind volumes: - name: docker-sock path: /var/run/docker.sock environment: DOCKER_REGISTRY: from_secret: docker_registry DOCKER_USERNAME: from_secret: docker_username DOCKER_PASSWORD: from_secret: docker_password commands: - echo "$DOCKER_PASSWORD" | docker login "$DOCKER_REGISTRY" -u "$DOCKER_USERNAME" --password-stdin - docker build -t $DOCKER_REGISTRY/ireborn/platform-backend:${DRONE_BRANCH} -f deploy/Dockerfile.backend . - docker tag $DOCKER_REGISTRY/ireborn/platform-backend:${DRONE_BRANCH} $DOCKER_REGISTRY/ireborn/platform-backend:latest - docker tag $DOCKER_REGISTRY/ireborn/platform-backend:${DRONE_BRANCH} $DOCKER_REGISTRY/ireborn/platform-backend:${DRONE_COMMIT_SHA:0:8} - docker push $DOCKER_REGISTRY/ireborn/platform-backend:${DRONE_BRANCH} - docker push $DOCKER_REGISTRY/ireborn/platform-backend:latest - docker push $DOCKER_REGISTRY/ireborn/platform-backend:${DRONE_COMMIT_SHA:0:8} # 构建并推送前端镜像(测试环境) - name: build-push-frontend-test image: docker:dind volumes: - name: docker-sock path: /var/run/docker.sock environment: DOCKER_REGISTRY: from_secret: docker_registry DOCKER_USERNAME: from_secret: docker_username DOCKER_PASSWORD: from_secret: docker_password commands: - echo "$DOCKER_PASSWORD" | docker login "$DOCKER_REGISTRY" -u "$DOCKER_USERNAME" --password-stdin - docker build -t $DOCKER_REGISTRY/ireborn/platform-frontend:develop -f deploy/Dockerfile.frontend --build-arg BACKEND_HOST=platform-backend-test . - docker push $DOCKER_REGISTRY/ireborn/platform-frontend:develop when: branch: - develop # 构建并推送前端镜像(生产环境) - name: build-push-frontend-prod image: docker:dind volumes: - name: docker-sock path: /var/run/docker.sock environment: DOCKER_REGISTRY: from_secret: docker_registry DOCKER_USERNAME: from_secret: docker_username DOCKER_PASSWORD: from_secret: docker_password commands: - echo "$DOCKER_PASSWORD" | docker login "$DOCKER_REGISTRY" -u "$DOCKER_USERNAME" --password-stdin - docker build -t $DOCKER_REGISTRY/ireborn/platform-frontend:main -f deploy/Dockerfile.frontend --build-arg BACKEND_HOST=platform-backend-prod . - docker push $DOCKER_REGISTRY/ireborn/platform-frontend:main when: branch: - main volumes: - name: docker-sock host: path: /var/run/docker.sock