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
相关产品推荐
相关产品推荐

