Travis CI で docker-compose を動かす

この記事はQiitaの記事をエクスポートしたものです。内容が古くなっている可能性があります。

前提条件

・動作させるdocker-compose.ymlを作成済み(versionは2までしか対応してない?)

.travis.yml の作成

Travis CI で docker-compose(追加パッケージも)を動作させる場合、公式が公開している方法に従い、before_install セクションを用意してインストール、権限付与等を行う。

services:
  - docker

env:
  - DOCKER_COMPOSE_VERSION: 1.8.0

before_install:
  - sudo rm /usr/local/bin/docker-compose
  - curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose
  - chmod +x docker-compose
  - sudo mv docker-compose /usr/local/bin
  - docker-compose up -d

Travis CIでビルドが正常に完了するかを確認する場合は、上記の設定のみでOK。 複数のdockerを使用した結合テストを実行する場合、scriptセクションを使用することでテストできる。

# 例
script:
  - docker-compose exec {コンテナ名} ./test/run-test.sh

全体をまとめると、以下のようになる。scriptセクションは適宜変更する。

services:
  - docker

env:
  - DOCKER_COMPOSE_VERSION: 1.8.0

before_install:
  - sudo rm /usr/local/bin/docker-compose
  - curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose
  - chmod +x docker-compose
  - sudo mv docker-compose /usr/local/bin
  - docker-compose up -d

script:
  - docker-compose exec {コンテナ名} ./test/run-test.sh