Travis CIでDockerfileをテストする等、dockerを使用したい場合、以下の様に.travis.ymlに記述することでdockerを有効にすることできます。

1
2
3
4
sudo: required

service:
  - docker

が、その際のdockerのバージョンは17.03.11と、最新版ではありません。 特に問題なのが、multi-stage build は17.05からの機能であるということです。 Travis CIで使用できるdockerでは、multi-stage buildを使用したDockerfileはビルドすることができず、常にfailedとなってしまいます。

解決方法

Travis-CIでDockerのバージョンを上げるには、以下の記述を.travis.ymlに追加します。

1
2
3
4
5
6
7
8
sudo: required

service:
  - docker

before_install:
  - sudo apt-get update
  - sudo apt-get install -y -o Dpkg::Options::="--force-confnew" docker-ce

dockerの再起動などの処理は必要ありません。 以上の記述により、Dockerのバージョンが最新版にアップデートされ、multi-stage buildも使用できるようになります。


  1. 2017年10月18日現在 ↩︎