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

Bitbucket Pipelines中Docker-Compose权限拒绝错误的解决求助

问题:Bitbucket Pipeline运行docker-compose时触发特权模式限制错误

我正在搭建Bitbucket Pipeline,想在部署前通过docker-compose构建并运行微服务镜像做测试。本地运行完全正常,但迁移到Pipeline后一直报以下错误:

#1 [internal] booting buildkit
#1 pulling image moby/buildkit:buildx-stable-1
#1 pulling image moby/buildkit:buildx-stable-1 2.4s done
#1 creating container buildx_buildkit_default 0.0s done
#1 ERROR: Error response from daemon: authorization denied by plugin pipelines: --privileged=true is not allowed
------
 > [internal] booting buildkit:
------
Error response from daemon: authorization denied by plugin pipelines: --privileged=true is not allowed

我的Dockerfile内容:

FROM node:12-alpine
WORKDIR /app/playground
RUN npm install npm@7.1.2
RUN rm -rf /usr/local/lib/node_modules/npm
RUN mv node_modules/npm /usr/local/lib/node_modules/npm
COPY package.json package-lock.json ./
RUN npm ci
COPY . .
CMD [ "npm", "run", "start" ]

docker-compose.yml内容:

version: "3"
services:
  playground:
    build: .
    ports:
      - 9111:9111
    env_file:
      - ./envs/test.env

我知道Bitbucket Pipelines出于安全限制了一些操作,但我并没有主动开启特权模式,请问该怎么解决这个错误?

解决方法
  • 禁用Docker BuildKit:Bitbucket Pipelines的Docker环境默认不允许BuildKit所需的特权操作,在Pipeline的环境变量中添加DOCKER_BUILDKIT=0,强制使用传统构建方式,避免触发特权模式请求。
    在bitbucket-pipelines.yml的步骤中设置环境变量,示例:
    pipelines:
      default:
        - step:
            name: Test with Docker Compose
            services:
              - docker
            script:
              - export DOCKER_BUILDKIT=0
              - docker-compose up --build --abort-on-container-exit
    
  • 检查Pipeline的Docker服务配置:确保Bitbucket Pipelines中启用的Docker服务没有隐含开启特权模式,默认的docker服务配置符合安全规范,无需额外修改。
  • 简化镜像构建流程(可选):如果上述方法无效,可以尝试直接用docker build命令构建镜像,再用docker run运行,跳过docker-compose的自动构建流程,避免BuildKit自动启用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 07:45:38