GitHub にリリースされていっているので、そこを見て、コマンドを実行したらよいといえば良い。
が、毎回見るのもあれなので、思い立ったときに動かせるようにしたいなあと思ったので更新するやつを作った。
sters/docker-compose-updater: Semi automatic docker-compose updater
原理はめっちゃそのままで、こんな処理をしている。
- インストールされている docker-compose を which で探す
- インストールされていなければ終了
- curl と cut で GitHub のリリースページから最新版のバージョンを探す
- OSとアーキテクチャを uname で識別(ドキュメントのまま)
- GitHub のリリースページから最新版をダウンロードし、インストールされているものを置き換える(ドキュメントのまま)
- chmod で実行権限を渡しておわり
Makefile がいいよ!って言われたので試しに見よう見まねで Makefile でやった。 Makefile のお試したかっただけ、みたいなところはある。なるほどなあ~~
どうやるのがいちばん良さそうかわからないけれど、docker-compose を扱う docker イメージがあってそっちを使うほうが楽そう…?
とはいえコンテナ内から docker-compose な操作をほにゃほにゃするとなると /var/run/docker.sock とか docker-compose.yml もといアプリケーションディレクトリをマウントしないと行けないので、記述がめんどうになりそうな気がする… というかちょっと試した程度ではできなかったのでうーん。 docker-compose って名前でエイリアスして、実態は docker/compose イメージを docker run してますよ~~みたいなものが出来ると、 docker-compose の準備する手間が無くてちょっとだけ便利になりそうなのだけど…
ちなみに作ったものと同じように、手元へと docker-compose バイナリを取り出すのはこんな感じ。
$ docker run --rm --entrypoint "" -v $(pwd):/tmp/bin docker/compose:1.18.0 cp /usr/local/bin/docker-compose /tmp/bin/
$ ls -l docker-compose
-rwxr-xr-x 1 root root 8479184 Jan 18 12:10 docker-compose
※ root が所有者になってるので移動させたりするときは sudo しないとだめ