mutao.net

いわゆる雑記。

Raspberry Piにdocker-composeをinstall

環境

install

$ wget https://github.com/docker/compose/releases/download/1.25.5/docker-compose-Linux-x86_64
$ mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
$ chmod 755 /usr/local/bin/docker-compose

docker-composeでエラー発生。

[dev@localhost drone]$ docker-compose up
-bash: /usr/local/bin/docker-compose: cannot execute binary file: Exec format error

どうやらOSに対応していないバイナリを実行しているのが原因みたい。

RasberryPiのCPUアーキテクチャはARMなのでそれが原因ぽいなぁということでバイナリ探しを始める。

バイナリがないので https://github.com/docker/compose.git をclone。

https://github.com/docker/compose/blob/master/script/build/linux

このscriptを実行する。

https://github.com/docker/compose/pull/6908

このPRを見るとRasberryPiにdocker-composeをinstallする手順が書いてありました。

PRから引用。docker自体は前もってinstall必要です。

Prerequisites

a Raspberry Pi
have Git and Docker installed
How to verify

Login to your Raspberry Pi
git clone https://github.com/docker/compose
cd compose
scripts/build/linux
dist/docker-compose-Linux-armv7l --version

↑の手順ではないですが、git checkout で installしたいバージョンのブランチにします。

https://github.com/docker/compose/tags

## 最新
$ git checkout 1.29.2
## scriptsってPRにあるけどscript配下にありました。
$ ./script/build/linux

## エラーメッセージでるけど無視、PATHが違うだけ、↑のscriptにこのコマンドを実行しているところをコメントアウトしてもいい気がする。
+ mv dist/docker-compose-linux-amd64 dist/docker-compose-Linux-aarch64
mv: 'dist/docker-compose-linux-amd64' を stat できません: No such file or directory

[root@localhost compose]# ll dist/
合計 10492
-rwxr-xr-x 1 root root 10741936  7月  3 09:13 docker-compose-linux-arm64
[root@localhost compose]# ./dist/docker-compose-linux-arm64 --version

## /usr/local/bin/に配置
mv /usr/bin/docker-compose /usr/local/bin/docker-compose

作業後気づいたこと

makefileありました。

https://github.com/docker/compose/blob/master/Makefile

調べたところpipで入れることもできるみたいです。

自宅にラズパイ以外のサーバが欲しくなってきている今日この頃。