docker-compose 自体を更新する

この記事は公開されてから1年以上経過しており、情報が古い可能性があります。

Github にリリースされていっているので、そこを見て、コマンドを実行したらよいといえば良い。

Releases · docker/compose

が、毎回見るのもあれなので、思い立ったときに動かせるようにしたいなあと思ったので更新するやつを作った。

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 しないとだめ

この記事はどうでしたか

前後の記事

Next:
Prev: