Bitbucket Pipeline报错‘docker: command not found’求排查方案
问题原因与解决方案
核心原因
- 你选用的
python:3.10-slim基础镜像不包含Docker客户端,docker命令自然不存在。 services: docker的作用是在Pipeline中提供Docker守护进程(daemon)服务,但它不会自动给你的运行镜像安装Docker客户端工具。- 你添加的
export DOCKER_BUILDKIT=1只是启用Docker BuildKit特性,和是否存在docker命令无关。
解决方案
方案1:更换包含Docker客户端的基础镜像
直接使用自带Docker客户端的镜像,比如Atlassian官方默认镜像(内置Docker客户端,可自行安装Python环境),修改image字段:
image: atlassian/default-image:3
之后在script中安装Python 3.10:
apt-get update && apt-get install -y python3.10 python3-pip
再执行docker version即可。
方案2:在现有镜像中手动安装Docker客户端
如果必须使用python:3.10-slim,可在script步骤开头添加安装Docker客户端的命令:
script: # 安装Docker客户端依赖与工具 - apt-get update && apt-get install -y curl gnupg2 apt-transport-https ca-certificates lsb-release - curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg - echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null - apt-get update && apt-get install -y docker-ce-cli # 验证Docker命令 - docker version
额外注意(自托管Runner)
确保你的自托管Runner主机已经安装Docker,并且Runner进程的用户拥有Docker访问权限(比如加入docker用户组),否则即使安装了客户端,也无法连接到守护进程。
内容的提问来源于stack exchange,提问作者Luigi Loria
相关产品推荐
相关产品推荐

