Add docker-compose healthcheck for test dependencies (#12)

This commit is contained in:
Adrian Macneil 2017-04-23 20:46:27 -07:00 committed by GitHub
parent c4fc848624
commit 247d7296f8
5 changed files with 33 additions and 32 deletions

View file

@ -2,6 +2,12 @@ sudo: required
services: services:
- docker - docker
install: install:
- curl -fsSL https://github.com/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > docker-compose
- chmod +x docker-compose
- sudo mv docker-compose /usr/local/bin/docker-compose
- docker-compose version
- docker-compose pull
- docker-compose build
- docker-compose up -d - docker-compose up -d
- docker-compose run dbmate go version - docker-compose run dbmate go version
script: script:

View file

@ -7,7 +7,9 @@ clean:
rm -rf dist rm -rf dist
container: container:
$(DC) pull
$(DC) build $(DC) build
$(DC) up -d
lint: lint:
$(DC) run dbmate golint $(DC) run dbmate golint

View file

@ -1,13 +1,23 @@
dbmate: version: '2.1'
build: . services:
volumes: dbmate:
- .:/go/src/github.com/amacneil/dbmate build: .
links: volumes:
- mysql - .:/go/src/github.com/amacneil/dbmate
- postgres depends_on:
mysql: mysql:
image: mysql:5.7 condition: service_healthy
environment: postgres:
MYSQL_ROOT_PASSWORD: root condition: service_healthy
postgres:
image: postgres:9.4 mysql:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: root
healthcheck:
test: ["CMD", "mysqladmin", "status", "-proot"]
postgres:
image: postgres
healthcheck:
test: ["CMD", "pg_isready"]

View file

@ -3,23 +3,15 @@ package main
import ( import (
"database/sql" "database/sql"
"net/url" "net/url"
"os"
"testing" "testing"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )
func mySQLTestURL(t *testing.T) *url.URL { func mySQLTestURL(t *testing.T) *url.URL {
str := os.Getenv("MYSQL_PORT") u, err := url.Parse("mysql://root:root@mysql:3306/dbmate")
require.NotEmpty(t, str, "missing MYSQL_PORT environment variable")
u, err := url.Parse(str)
require.Nil(t, err) require.Nil(t, err)
u.Scheme = "mysql"
u.User = url.UserPassword("root", "root")
u.Path = "/dbmate"
return u return u
} }

View file

@ -3,24 +3,15 @@ package main
import ( import (
"database/sql" "database/sql"
"net/url" "net/url"
"os"
"testing" "testing"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )
func postgresTestURL(t *testing.T) *url.URL { func postgresTestURL(t *testing.T) *url.URL {
str := os.Getenv("POSTGRES_PORT") u, err := url.Parse("postgres://postgres:postgres@postgres/dbmate?sslmode=disable")
require.NotEmpty(t, str, "missing POSTGRES_PORT environment variable")
u, err := url.Parse(str)
require.Nil(t, err) require.Nil(t, err)
u.Scheme = "postgres"
u.User = url.User("postgres")
u.Path = "/dbmate"
u.RawQuery = "sslmode=disable"
return u return u
} }