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

Docker Compose执行apt-get提示not found的原因咨询

问题原因解析

1. Docker Compose command字段的执行逻辑与Jenkins镜像ENTRYPOINT冲突

jenkins/jenkins:lts镜像的默认ENTRYPOINT是/usr/local/bin/jenkins.sh,这是专门用来启动Jenkins的脚本。当你在Docker Compose的command字段直接写apt-get相关命令时,这些内容会被当作参数传递给jenkins.sh脚本,而非作为系统命令直接执行。

jenkins.sh仅处理Jenkins的启动参数,不会解析执行系统级命令,因此会出现apt-get not found错误——本质是脚本无法识别这些参数,而非系统中不存在apt-get。

2. 进入容器CLI能执行命令的原因

通过docker exec进入运行中的容器CLI时,相当于直接启动了一个新的shell进程(比如bash),完全绕开了容器默认的ENTRYPOINT/CMD逻辑,直接在Debian系统环境中运行命令,因此可以正常调用apt-get。

3. 更换apk无效的原因

jenkins/jenkins:lts镜像基于Debian/Ubuntu发行版,而非Alpine系统。Debian系使用apt/apt-get作为包管理器,根本不存在apk命令,所以更换为apk自然也会提示找不到。

额外:不用自定义镜像的临时解决思路

如果不想构建自定义镜像,可通过覆盖ENTRYPOINT的方式,先执行系统命令再启动Jenkins:

services:
  jenkins:
    image: jenkins/jenkins:lts
    entrypoint: ["bash", "-c", "apt-get update && apt-get install -y 你的目标包 && /usr/local/bin/jenkins.sh"]

这样会先完成你的包安装操作,再调用原启动脚本拉起Jenkins。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 20:33:15