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

在Amazon Linux 2上用Ansible安装Docker/Compose失败,手动安装成功

排查方向

1. 调整任务执行顺序

  • 先执行pip安装docker-compose模块的任务,再执行get_url下载官方docker-compose二进制文件的任务,避免二进制文件被pip生成的小体积脚本覆盖。
  • 若必须保留pip安装步骤,可添加--ignore-installed参数,防止pip替换已存在的完整二进制文件(注意此参数可能影响其他依赖,需谨慎使用)。

2. 区分Docker Compose的两种安装方式

  • 你遇到的215字节文件是旧版Python模块式docker-compose的启动脚本,而官方推荐的是独立二进制文件或插件式docker compose(无横杠)。
  • 若要使用CLI插件形式,无需通过pip安装Python模块,直接下载官方二进制文件,或通过Amazon Linux 2的extras仓库安装docker-compose-plugin包即可。

3. 验证二进制文件下载完整性

  • 在get_url任务中添加checksum参数,填入对应版本官方文件的哈希值(从Docker官方发布页获取),确保下载的文件完整,避免因网络问题导致文件残缺。示例:
    - name: 下载docker-compose二进制文件
      get_url:
        url: "https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-linux-x86_64"
        dest: "/usr/local/bin/docker-compose"
        mode: '0755'
        checksum: "sha256:xxxxxx" # 替换为对应版本的哈希值
    

4. 确认路径优先级

  • 检查系统PATH环境变量,确保/usr/local/bin(存放手动下载的二进制文件)优先级高于/usr/bin,让系统优先调用完整的二进制文件。
  • 或直接将下载的二进制文件放到/usr/bin/docker-compose,覆盖pip生成的脚本(注意设置正确权限)。

5. 保证任务幂等性

  • 给get_url任务添加校验逻辑,仅当文件不存在或不完整时重新下载;给pip任务添加when条件,比如仅当/usr/local/bin/docker-compose大小不符合预期时才执行,避免不必要的覆盖。

内容的提问来源于stack exchange,提问作者Tomas.R

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 08:04:58