You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法触发自定义(手动)Bitbucket Pipeline,yml报错缺少import属性

自定义Bitbucket Pipeline触发失败问题解决

问题场景

  • 自动Pipeline的执行步骤可正常运行,但手动触发自定义staging-deploy流水线时失败
  • 流水线预期执行流程:
    1. 构建镜像并推送到DockerHub
    2. 通过SSH连接到DO Droplet,拉取镜像并运行容器

错误提示

There is an error in your bitbucket-pipelines.yml at [pipelines > custom > staging-deploy]. Required attributes are not set: import

原配置代码

image: atlassian/default-image:3

pipelines:
  custom:
    staging-deploy:
      deploy:
        - step:
          name: Deploy to DockerHub
          services:
            - docker
          script:
            - export IMAGE_NAME=$DOCKER_HUB_USERNAME/$PROJECT_NAME:$BITBUCKET_COMMIT
            - docker build -t $IMAGE_NAME .
            - docker login --username $DOCKER_HUB_USERNAME --password $DOCKER_HUB_PASSWORD
            - docker push $IMAGE_NAME
        
        - step:
          name: Deploy to Droplet
          script:
            - export IMAGE_NAME=$DOCKER_HUB_USERNAME/$PROJECT_NAME:$BITBUCKET_COMMIT
            - pipe: atlassian/ssh-run:0.6.1
              variables:
                SSH_USER: $SSH_USER
                SERVER: $SSH_SERVER
                COMMAND: 'docker login --username $DOCKER_HUB_USERNAME --password $DOCKER_HUB_PASSWORD; docker pull $IMAGE_NAME; docker stop $PROJECT_NAME; docker rm $PROJECT_NAME; docker run -d --restart always --name $PROJECT_NAME -p $SERVER_PORT:$SERVER_PORT $IMAGE_NAME; docker image prune -a -f'

问题原因及修复方案

自定义Pipeline的语法规则和自动Pipeline不同,不能在自定义流水线节点下直接使用deploy关键字。自动Pipeline中的deploy是用于指定部署阶段的专属关键字,但自定义流水线要求直接将步骤列表挂载在流水线名称节点下,不需要额外的层级包裹。

修改后的正确配置:

image: atlassian/default-image:3

pipelines:
  custom:
    staging-deploy:
      - step:
          name: Deploy to DockerHub
          services:
            - docker
          script:
            - export IMAGE_NAME=$DOCKER_HUB_USERNAME/$PROJECT_NAME:$BITBUCKET_COMMIT
            - docker build -t $IMAGE_NAME .
            - docker login --username $DOCKER_HUB_USERNAME --password $DOCKER_HUB_PASSWORD
            - docker push $IMAGE_NAME
        
      - step:
          name: Deploy to Droplet
          script:
            - export IMAGE_NAME=$DOCKER_HUB_USERNAME/$PROJECT_NAME:$BITBUCKET_COMMIT
            - pipe: atlassian/ssh-run:0.6.1
              variables:
                SSH_USER: $SSH_USER
                SERVER: $SSH_SERVER
                COMMAND: 'docker login --username $DOCKER_HUB_USERNAME --password $DOCKER_HUB_PASSWORD; docker pull $IMAGE_NAME; docker stop $PROJECT_NAME; docker rm $PROJECT_NAME; docker run -d --restart always --name $PROJECT_NAME -p $SERVER_PORT:$SERVER_PORT $IMAGE_NAME; docker image prune -a -f'

核心修改点:移除staging-deploy节点下的deploy层级,直接将两个step作为列表项挂载在staging-deploy下,符合自定义流水线的结构要求。

内容的提问来源于stack exchange,提问作者Alooza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 17:30:29