编译arm 版本docker-compose

docker compose 只有x86 版本的,没有arm版本的。 arm版本的需要自己编译,你需要有一个配置稍微高一点的,能使用docker 的arm的开发板。

编译过程如下:
下载代码:

git clone https://github.com/docker/compose.git

准备编译用的dockerfile

cd compose
cp -i Dockerfile Dockerfile.armhf
sed -i -e 's/^FROM debian\:/FROM armhf\/debian:/' Dockerfile.armhf

主要是两个docker image, 一个是build用的(debian),一个是runtime用的(alpine), 后面用到的主要是build用的, 新版本的docker-compose的编译不需要修改上面的内容。

你可以通过在的build用的debian的配置里面添加下面的命令切换deian的apt源

RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list

在alpine的配置里面添加下面的命令切换alpine的源

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories

修改编译脚本script/build/linux

-f Dockerfile 修改成-f Dockerfile.armhf, 新版本的docker-compose的编译不需要修改。

编译

./script/build/linux

编译成功后,编译好的docker-compose 会被放到dist 目录下面

$ ls -l dist/
total 14456
-rwxr-xr-x 1 ubuntu ubuntu 14799448 3月  15 20:51 docker-compose-Linux-aarch64

原文:

https://www.toutiao.com/i6804465376827539971/

### 通过 opkg 安装 DockerDocker Compose 在支持 `opkg` 的嵌入式设备上安装 DockerDocker Compose 需要遵循特定的方法,因为这些设备通常资源有限且不直接提供官方的 Docker 软件包。以下是详细的说明: #### 1. 安装 Docker Docker 并未直接针对基于 `opkg` 的系统发布预编译二进制文件,因此需要手动构建或寻找社区维护的第三方软件包。 - 如果存在适用于目标架构(如 ARM 或 MIPS)的 Docker 社区,则可以通过以下命令尝试安装: ```bash opkg update && opkg install docker ``` 此方法依赖于是否有开发者为该平台提供了兼容的 Docker 版本[^1]。 - 若无现成的 `opkg` 包可用,需自行交叉编译适合硬件环境的 Docker 可执行程序并将其复制至目标设备中运行。具体操作可参考官方文档关于跨平台编译的部分[^2]。 #### 2. 安装 Docker Compose 对于 Docker Compose,在某些情况下可能也无法找到对应的 `opkg` 包管理器中的条目。此时可以考虑下载通用二进制文件或者利用 Python 的 pip 工具来完成部署工作。 ##### 方法一:使用 curl 下载官方发布的静态二进制文件 此方式类似于 CentOS 上的做法[^3]: ```bash curl -L "https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose docker-compose version ``` ##### 方法二:借助 pip 进行安装 (如果环境中已具备 python 支撑库的话)[^4] 先确保系统的 pip 是最新状态后再继续下一步骤: ```bash yum -y install epel-release yum install python-pip pip install --upgrade pip pip install docker-compose ``` 注意这里假设的是类 RedHat 发行下的指令集, 对应到 OpenWrt 类型则替换相应 apt-get/yum 命令部分. 由于很多小型 IoT 设备默认并未内置完整的 Python 环境,所以这种方法可能会遇到较多障碍,除非提前做好充分准备。 --- ### 注意事项 - **性能考量**: 小型嵌入式装置往往计算能力较弱,启动容器化应用时务必留意其负载情况。 - **存储空间**: 检查剩余磁盘容量是否充足以容纳必要的镜像及相关数据卷。 - **网络连接稳定性**: 整个过程中保持良好的联网条件有助于顺利完成各项任务。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值