官方没有提供aarch64架构的1.29.2版本,官方2.x系列已经提供 aarch64架构版本。
所以需要自行编译aarch64架构的Docker Compose。
编译使用系统不局限于CentOS。
安装依赖
yum -y install yum-utils git
安装Docker
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
或者
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum -y install docker-ce
拉取源码
git clone [https://github.com/docker/compose.git](https://github.com/docker/compose.git)
切换Tag
cd compose
git checkout 1.29.2
修改源
vim Dockerfile
sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
编译
./script/build/linux
提示:漫长的等待结果吧。
应用
提示:编译成功后会在 ./dist 目录中生成 “docker-compose-Linux-aarch64” 的应用。
cp ./dist/docker-compose-Linux-aarch64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
版本查看
docker-compose version
docker-compose version 1.29.2, build 5becea4
docker-py version: 5.0.0
CPython version: 3.7.10
OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019
扩展内容
执行文件导入本地dist目录时报错,信息往上阅读,发现docker-compose 已经编译好了,只是最后的导出部分报错。
思路:既然导出有问题,那我们自己去容器中提取到本地。
1.编辑Dockerfile文件
vim Dockerfile
RUN script/build/linux-entrypoint
改成
RUN script/build/linux-entrypoint && sleep 99999
2.重新进行编辑
./script/build/linux
3.复制
当编译结果显示 successfully 字样
新启会话窗口,复制docker-compose到本地
docker ps #查看当前编译容器ID或名称
docker cp trusting_babbage:/usr/local/bin/docker-compose .