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

Docker容器内Jenkins执行docker compose命令报错求助

Jenkins容器内执行docker compose报错docker: 'compose' is not a docker command的解决方法

问题分析

你已经完成了docker.sock和docker二进制的卷映射,基础docker命令可以正常运行,但docker compose报错,核心原因是:容器内缺少Docker Compose的执行文件或CLI插件——宿主机上的docker compose依赖的组件并没有同步到Jenkins容器中。

解决方案

方案一:映射宿主机的Docker Compose插件(依赖宿主机版本)

如果你的宿主机使用的是新版Docker Compose(作为Docker CLI插件),直接在docker-compose.yml的volumes中添加插件文件的映射:

version: "3.9"
services:
  jenkins-blueocean:
    # 其他配置不变
    volumes:
      - "jenkins_home:/var/jenkins_home"
      - "/var/run/docker.sock:/var/run/docker.sock"
      - "/usr/bin/docker:/usr/bin/docker"
      # 添加这一行,映射CLI插件
      - "/usr/libexec/docker/cli-plugins/docker-compose:/usr/libexec/docker/cli-plugins/docker-compose"

volumes:
  jenkins_home:

修改后重新构建并启动容器,即可在Jenkins中执行docker compose命令。

方案二:在Jenkins镜像中安装Docker Compose(独立不依赖宿主机)

如果希望容器不依赖宿主机的Docker Compose版本,可直接在Dockerfile中添加安装步骤:

FROM jenkins/jenkins

EXPOSE 8080
EXPOSE 50000

ARG GROUP_ID

USER root

RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"

# 安装Docker Compose(可替换为你需要的版本)
RUN curl -SL https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose \
    && chmod +x /usr/local/bin/docker-compose

RUN groupadd -g $GROUP_ID docker \
&& gpasswd -a jenkins docker

RUN newgrp docker

USER jenkins

重新构建镜像后启动容器,容器内将自带Docker Compose,无需额外映射。

验证方法

进入Jenkins容器执行以下命令,确认是否正常:

docker compose version

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 18:33:24