version: "2" services: postgres: image: "postgres:${POSTGRES_VERSION}" environment: - "POSTGRES_USER=postgres" - "POSTGRES_DB=goqupostgres" - "POSTGRES_HOST_AUTH_METHOD=trust" expose: - "5432" ports: - "5432:5432" mysql: image: "mysql:${MYSQL_VERSION}" environment: - "MYSQL_DATABASE=goqumysql" - "MYSQL_ALLOW_EMPTY_PASSWORD=yes" expose: - "3306" ports: - "3306:3306" sqlserver: image: "mcr.microsoft.com/mssql/server:${SQLSERVER_VERSION}" environment: - "ACCEPT_EULA=Y" - "SA_PASSWORD=qwe123QWE" expose: - "1433" ports: - "1433:1433" goqu: image: "golang:${GO_VERSION}" command: ["./wait-for-it.sh", "postgres:5432", "--", "./wait-for-it.sh", "mysql:3306", "--", "go test -v -race ./..."] working_dir: /go/src/github.com/doug-martin/goqu volumes: - "./:/go/src/github.com/doug-martin/goqu" environment: MYSQL_URI: 'root@tcp(mysql:3306)/goqumysql?parseTime=true' PG_URI: 'postgres://postgres:@postgres:5432/goqupostgres?sslmode=disable' SQLSERVER_URI: 'sqlserver://sa:qwe123QWE@sqlserver:1433?database=master&connection+timeout=30' depends_on: - postgres - mysql - sqlserver goqu-coverage: image: "golang:${GO_VERSION}" command: ["./wait-for-it.sh", "postgres:5432", "--", "./wait-for-it.sh", "mysql:3306", "--", "./go.test.sh"] working_dir: /go/src/github.com/doug-martin/goqu volumes: - "./:/go/src/github.com/doug-martin/goqu" environment: MYSQL_URI: 'root@tcp(mysql:3306)/goqumysql?parseTime=true' PG_URI: 'postgres://postgres:@postgres:5432/goqupostgres?sslmode=disable' SQLSERVER_URI: 'sqlserver://sa:qwe123QWE@sqlserver:1433?database=master&connection+timeout=30' depends_on: - postgres - mysql - sqlserver