jenkinsci/blueocean镜像Dockerfile安装docker-compose构建失败如何解决
错误根因
- 构建失败核心原因是pip安装docker-compose时,依赖的
pynacl包需要在本地编译,PEP 517构建模式下编译环境不匹配导致生成wheel失败 - 调整pip版本无法解决问题,因为问题本质是pynacl的编译依赖未正确适配Alpine系统,而非pip版本问题
解决方案
方案1:通过Alpine官方源直接安装docker-compose(推荐)
Alpine官方源已经提供预编译的docker-compose包,无需手动编译依赖,修改你的Dockerfile如下:
FROM jenkinsci/blueocean USER root RUN apk add --no-cache docker-compose USER jenkins
该方案安装速度快,无编译报错风险,功能与pip安装的docker-compose完全一致。
方案2:保留pip安装方式的修改方案
如果需要通过pip安装指定版本的docker-compose,先安装Alpine源预编译的pynacl包,再执行pip安装,修改Dockerfile如下:
FROM jenkinsci/blueocean USER root RUN apk add --no-cache py-pip python3-dev libffi-dev openssl-dev gcc libc-dev rust cargo make gettext py3-pynacl RUN pip3 install docker-compose USER jenkins
该方案通过系统预编译的pynacl包跳过pip的pynacl编译步骤,即可完成安装。
内容的提问来源于stack exchange,提问作者Ярослав Регульский
相关产品推荐
相关产品推荐

