地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

【Docker】docker-composeにBuildkitが来た

ついに。。!!

長らくdocker-composeでbuild kitが使えない時間を過ごしてきたがついに使用可能なdocker-composeがリリースされた。

最近まではrc版を入れてれば使えたけど今回は正式版としてリリースされている。

github.com

COMPOSE_DOCKER_CLI_BUILD=1を環境変数として設定してdocker-compose upなりでビルドを開始するだけで出力がbuildkitのものになってることがわかります。

docker-composeように書いてたDockerfileも並行性を意識した書き方に変えていけば大きな効果が得られそうですね。

$ export COMPOSE_DOCKER_CLI_BUILD=1
$ time docker-compose up -d
#2 [internal] load .dockerignore
#2       digest: sha256:1c229962346e49a4e6ce90a6fe6ac1cab160b9124ed84683dd7142584dcf3f46
#2         name: "[internal] load .dockerignore"
#2      started: 2019-11-20 14:03:40.104119588 +0000 UTC
#2    completed: 2019-11-20 14:03:40.130367781 +0000 UTC
#2     duration: 26.248193ms
#2 transferring context: 2B done

installはとっても簡単。今回はlinux上でやってますがdarwingithubからダウンロードすれば使えます (docker-for-macとかを経由してる場合は新たにパスを切る必要があるかと思います。)

circleciで使うなら下記のような感じでインストールできます。

  install_docker_compose:
    description: "Install docker-compose"
    steps:
      - run:
          name: "Install docker-compose"
          command: |
            curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` > ~/docker-co
mpose
            chmod +x ~/docker-compose
            sudo mv ~/docker-compose /usr/local/bin/docker-compose
            docker-compose version