arm64 平台下编译 docker-compose
由于官方仅提供有
x86_64
架构的 docker-compose 二进制包文件,无法在aarch64
下运行。不得已只能自己编译相关文件。如果不想自己编译可以使用 linuxserver/docker-docker-compose 提供的二进制文件,不过看了下只有新版本才有
arm
架构的包,如果需要老版本还是只能自己编译。
编译环境
Python: 3.8.6
Python 环境管理:pyenv
Docker-ce: 20.10.7
操作系统:
/etc/os-release 1
2
3
4
5
6NAME="Kylin Linux Advanced Server"
VERSION="V10 (Tercel)"
ID="kylin"
VERSION_ID="V10"
PRETTY_NAME="Kylin Linux Advanced Server V10 (Tercel)"
ANSI_COLOR="0;31"Linux 内核:
uname -a 1
Linux ip-173-7-8-94.hstntx.spcsdns.net 4.19.90-17.ky10.aarch64 #1 SMP Sun Jun 28 14:27:40 CST 2020 aarch64 aarch64 aarch64 GNU/Linux
克隆代码
克隆官方源码到本地
shell 1
2git clone https://github.com/docker/compose.git
cd compose/签出想要编译的分支
shell 1
git checkout 1.25.4
编译镜像
替换
Dockerfile
中alpine
与Debian
为国内源,并添加豆瓣的PyPI
镜像。shell 1
2
3sed -i -e '/FROM build-${BUILD_PLATFORM} AS build/aRUN mkdir ${HOME}/.pip && /bin/echo -e "[global]\\nindex-url = https://pypi.doubanio.com/simple/\\ntrusted-host = pypi.doubanio.com\\ntimeout = 120" > ${HOME}/.pip/pip.conf' \
-e '/RUN apk add --no-cache/iRUN sed -i "s@http://dl-cdn.alpinelinux.org/@https://repo.huaweicloud.com/@g" /etc/apk/repositories' \
-e '/RUN apt-get update/iRUN sed -i "s@http://deb.debian.org@http://repo.huaweicloud.com@g" /etc/apt/sources.list \\\n && sed -i "s@http://security.debian.org@http://repo.huaweicloud.com@g" /etc/apt/sources.list' Dockerfile编译
dockercompose
镜像shell 1
docker build -t dockercompose:1.25.4 --build-arg BUILD_PLATFORM=debian .
等待编译完成后,可查看到如下镜像
shell 1
2
3docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
dockercompose 1.25.4 2ab0e4f925d0 46 seconds ago 122MB
使用 compose
以镜像的方式使用
获取 compose 运行脚本
shell 1
curl -L --fail https://github.com/docker/compose/releases/download/1.25.4/run.sh -o /usr/local/bin/docker-compose
赋予该脚本可执行权限
shell 1
chmod +x /usr/local/bin/docker-compose
替换脚本中使用镜像为我们自己编译的镜像文件
shell 1
sed -i 's/docker\/compose:$VERSION"/dockercompose:$VERSION"/g' /usr/local/bin/docker-compose
测试 docker-compose
shell 1
2
3
4
5docker-compose version
docker-compose version 1.25.4, build unknown
docker-py version: 4.1.0
CPython version: 3.7.5
OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019
以二进制文件方式使用
直接从已编译好的 compose 镜像中导出二进制文件即可
shell 1
docker run --rm dockercompose:1.25.4 cat /usr/local/bin/docker-compose > docker-compose
赋予文件可执行权限
shell 1
chmod +x docker-compose
测试 docker-compose
shell 1
2
3
4
5./docker-compose version
docker-compose version 1.25.4, build unknown
docker-py version: 4.1.0
CPython version: 3.7.5
OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019
参考文章:
- 本文标题:arm64 平台下编译 docker-compose
- 本文作者:akiya
- 本文链接:https://little-star.love/posts/1fe09987/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!