diff --git a/checks/http/check_test.go b/checks/http/check_test.go index 4feec5b..b398677 100644 --- a/checks/http/check_test.go +++ b/checks/http/check_test.go @@ -3,6 +3,7 @@ package http import ( "context" "os" + "strings" "testing" "github.com/stretchr/testify/require" @@ -25,5 +26,8 @@ func getURL(t *testing.T) string { httpURL, ok := os.LookupEnv(httpURLEnv) require.True(t, ok) + // "docker-compose port " returns 0.0.0.0:XXXX locally, change it to local port + httpURL = strings.Replace(httpURL, "0.0.0.0:", "127.0.0.1:", 1) + return httpURL } diff --git a/checks/mongo/check_test.go b/checks/mongo/check_test.go index 2a8b4c5..df2dffb 100644 --- a/checks/mongo/check_test.go +++ b/checks/mongo/check_test.go @@ -3,6 +3,7 @@ package mongo import ( "context" "os" + "strings" "testing" "github.com/stretchr/testify/require" @@ -25,5 +26,8 @@ func getDSN(t *testing.T) string { mongoDSN, ok := os.LookupEnv(mgDSNEnv) require.True(t, ok) + // "docker-compose port " returns 0.0.0.0:XXXX locally, change it to local port + mongoDSN = strings.Replace(mongoDSN, "0.0.0.0:", "127.0.0.1:", 1) + return mongoDSN } diff --git a/checks/mysql/check_test.go b/checks/mysql/check_test.go index 8883f82..de1aaca 100644 --- a/checks/mysql/check_test.go +++ b/checks/mysql/check_test.go @@ -4,6 +4,7 @@ import ( "context" "database/sql" "os" + "strings" "sync" "testing" "time" @@ -72,6 +73,9 @@ func getDSN(t *testing.T) string { mysqlDSN, ok := os.LookupEnv(mysqlDSNEnv) require.True(t, ok) + // "docker-compose port " returns 0.0.0.0:XXXX locally, change it to local port + mysqlDSN = strings.Replace(mysqlDSN, "0.0.0.0:", "127.0.0.1:", 1) + return mysqlDSN } diff --git a/checks/postgres/check_test.go b/checks/postgres/check_test.go index 795536f..403847d 100644 --- a/checks/postgres/check_test.go +++ b/checks/postgres/check_test.go @@ -4,6 +4,7 @@ import ( "context" "database/sql" "os" + "strings" "sync" "testing" "time" @@ -69,6 +70,9 @@ func getDSN(t *testing.T) string { pgDSN, ok := os.LookupEnv(pgDSNEnv) require.True(t, ok) + // "docker-compose port " returns 0.0.0.0:XXXX locally, change it to local port + pgDSN = strings.Replace(pgDSN, "0.0.0.0:", "127.0.0.1:", 1) + return pgDSN } diff --git a/checks/rabbitmq/aliveness_check_test.go b/checks/rabbitmq/aliveness_check_test.go index c0c2926..1c2dbf9 100644 --- a/checks/rabbitmq/aliveness_check_test.go +++ b/checks/rabbitmq/aliveness_check_test.go @@ -3,6 +3,7 @@ package rabbitmq import ( "context" "os" + "strings" "testing" "github.com/stretchr/testify/require" @@ -27,5 +28,8 @@ func getURL(t *testing.T) string { httpURL, ok := os.LookupEnv(httpURLEnv) require.True(t, ok) + // "docker-compose port " returns 0.0.0.0:XXXX locally, change it to local port + httpURL = strings.Replace(httpURL, "0.0.0.0:", "127.0.0.1:", 1) + return httpURL } diff --git a/checks/rabbitmq/check_test.go b/checks/rabbitmq/check_test.go index 6702147..d093b00 100644 --- a/checks/rabbitmq/check_test.go +++ b/checks/rabbitmq/check_test.go @@ -3,6 +3,7 @@ package rabbitmq import ( "context" "os" + "strings" "testing" "github.com/stretchr/testify/assert" @@ -37,5 +38,8 @@ func getDSN(t *testing.T) string { mqDSN, ok := os.LookupEnv(mqDSNEnv) require.True(t, ok) + // "docker-compose port " returns 0.0.0.0:XXXX locally, change it to local port + mqDSN = strings.Replace(mqDSN, "0.0.0.0:", "127.0.0.1:", 1) + return mqDSN } diff --git a/checks/redis/check_test.go b/checks/redis/check_test.go index 323abcb..805ffe5 100644 --- a/checks/redis/check_test.go +++ b/checks/redis/check_test.go @@ -3,6 +3,7 @@ package redis import ( "context" "os" + "strings" "testing" "github.com/stretchr/testify/require" @@ -25,5 +26,8 @@ func getDSN(t *testing.T) string { redisDSN, ok := os.LookupEnv(rdDSNEnv) require.True(t, ok) + // "docker-compose port " returns 0.0.0.0:XXXX locally, change it to local port + redisDSN = strings.Replace(redisDSN, "0.0.0.0:", "127.0.0.1:", 1) + return redisDSN } diff --git a/docker-compose.yml b/docker-compose.yml index 123d697..cbfd8b1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -18,22 +18,42 @@ services: POSTGRES_USER: test POSTGRES_PASSWORD: test POSTGRES_DB: test + healthcheck: + test: [ "CMD", "pg_isready" ] + interval: 10s + timeout: 5s + retries: 5 rabbit: image: rabbitmq:3.6-management-alpine ports: - "5672" - "15672" + healthcheck: + test: [ "CMD", "rabbitmqctl", "status" ] + interval: 10s + timeout: 5s + retries: 5 redis: image: redis:3.2-alpine ports: - "6379" + healthcheck: + test: [ "CMD", "redis-cli", "ping" ] + interval: 10s + timeout: 5s + retries: 5 mongo: image: mongo:3 ports: - "27017" + healthcheck: + test: "mongo localhost:27017/test --quiet --eval 'quit(db.runCommand({ ping: 1 }).ok ? 0 : 2)'" + interval: 10s + timeout: 5s + retries: 5 mysql: image: mysql:5.7 @@ -44,6 +64,11 @@ services: MYSQL_DATABASE: test MYSQL_USER: test MYSQL_PASSWORD: test + healthcheck: + test: [ "CMD", "mysqladmin", "ping", "-h", "localhost" ] + interval: 10s + timeout: 5s + retries: 5 memcached: image: memcached:1.6.9-alpine