Arch Linux下docker-compose构建Airflow时报webserver服务构建失败问题
Arch Linux下docker-compose构建Airflow报错解决方案
你遇到的报错是独立二进制分发版docker-compose的典型兼容性问题:这类通过PyInstaller打包的单二进制文件会内置旧版OpenSSL 1.1.1依赖库,而Arch Linux作为滚动发行版,系统内置的libcurl、libssh2组件已经适配更高版本的OpenSSL接口,运行时docker-compose会优先加载自带的旧版OpenSSL库,导致系统组件找不到对应版本符号触发报错。
可按优先级选择以下方案解决:
- 方案一:替换为Arch官方源打包的docker-compose版本
首先删除你之前手动安装的独立二进制文件,默认路径为/usr/local/bin/docker-compose,执行:
再从官方源安装适配系统依赖的版本:sudo rm -f /usr/local/bin/docker-compose
安装完成后重新执行构建命令sudo pacman -Syu docker-composedocker-compose up -d即可正常运行。 - 方案二:使用Docker内置的Compose V2子命令
目前Docker已经将Compose整合为内置子命令,不需要额外安装独立二进制包,直接执行以下命令构建即可:
该子命令完全兼容旧版docker-compose的配置文件,且不会有独立二进制的库依赖冲突问题。docker compose up -d - 方案三:临时强制调用系统库适配旧版二进制
如果你确实需要使用当前的独立二进制docker-compose版本,运行命令时临时指定优先加载系统库即可:
要永久生效可以给shell加别名,以bash为例执行:LD_LIBRARY_PATH=/usr/lib docker-compose up -decho "alias docker-compose='LD_LIBRARY_PATH=/usr/lib docker-compose'" >> ~/.bashrc source ~/.bashrc
内容的提问来源于stack exchange,提问作者Musebe Ivan
相关产品推荐
相关产品推荐

