Travis 是在
Github 上常用的整合測試服務,支援了各種程式語言
Golang, PHP, Node.js ..等測試及部署,也同時支援了一些常用 Service,像是
Docker, Redis 或 Database。這次來聊聊
在 Travis 如何使用 Docker,在 Travis 內建的 Docker 跟
docker-compose 版本都是非常舊,所以使用預設的 docker-compose 指令常常會出現 (詳細 build log 可以參考
這裡)
Error log
會有兩種錯誤訊息,第一種是
docker-compose -f docker/docker-compose.yml run golang-build
Creating network “docker_default” with the default driver
ERROR: 404 page not found
make: *** [test] Error 1
第二種是
docker-compose -f docker/docker-compose.yml run golang-build
Unsupported config option for services service: ‘golang-build’
make: *** [test] Error 1
解法
雖然官方網站有教如何升級 docker-compose,但是光是升級 docker-compose 是沒用的,如果
docker-engine 沒有升級,還是會出現此錯誤訊息,正確解法就是將 docker 也順便升級,打開
.travis.yml
檔案,在
before_install
內補上底下 script。
services:
- docker
env:
DOCKER_COMPOSE_VERSION: 1.7.1
before_install:
- sudo apt-get -y update
- sudo apt-get -y purge docker-engine
- sudo apt-get -y install docker-engine
- 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
請參考完整的
.travis.yml 設定檔。