From ef3588c1f829c23daeaa34bc4126ffd9c81b3761 Mon Sep 17 00:00:00 2001 From: Marcus Efraimsson Date: Thu, 15 Mar 2018 09:49:53 +0100 Subject: [PATCH] docker: mssql and mssql tests blocks with common build context --- docker/blocks/mssql/{ => build}/Dockerfile | 0 docker/blocks/mssql/{ => build}/entrypoint.sh | 0 docker/blocks/mssql/build/setup.sh | 12 ++++++++++++ docker/blocks/mssql/build/setup.sql.template | 14 ++++++++++++++ docker/blocks/mssql/docker-compose.yaml | 7 +++++-- docker/blocks/mssql/setup.sh | 5 ----- docker/blocks/mssql/setup.sql | 14 -------------- docker/blocks/mssql_tests/docker-compose.yaml | 12 ++++++++++++ pkg/services/sqlstore/sqlutil/sqlutil.go | 2 +- 9 files changed, 44 insertions(+), 22 deletions(-) rename docker/blocks/mssql/{ => build}/Dockerfile (100%) rename docker/blocks/mssql/{ => build}/entrypoint.sh (100%) create mode 100755 docker/blocks/mssql/build/setup.sh create mode 100644 docker/blocks/mssql/build/setup.sql.template delete mode 100644 docker/blocks/mssql/setup.sh delete mode 100644 docker/blocks/mssql/setup.sql create mode 100644 docker/blocks/mssql_tests/docker-compose.yaml diff --git a/docker/blocks/mssql/Dockerfile b/docker/blocks/mssql/build/Dockerfile similarity index 100% rename from docker/blocks/mssql/Dockerfile rename to docker/blocks/mssql/build/Dockerfile diff --git a/docker/blocks/mssql/entrypoint.sh b/docker/blocks/mssql/build/entrypoint.sh similarity index 100% rename from docker/blocks/mssql/entrypoint.sh rename to docker/blocks/mssql/build/entrypoint.sh diff --git a/docker/blocks/mssql/build/setup.sh b/docker/blocks/mssql/build/setup.sh new file mode 100755 index 00000000000..e1d509b042e --- /dev/null +++ b/docker/blocks/mssql/build/setup.sh @@ -0,0 +1,12 @@ +#/bin/bash + +#wait for the SQL Server to come up +sleep 15s + +cat /usr/setup/setup.sql.template | awk '{ + gsub(/%%DB%%/,"'$MSSQL_DATABASE'"); + gsub(/%%USER%%/,"'$MSSQL_USER'"); + gsub(/%%PWD%%/,"'$MSSQL_PASSWORD'") +}1' > /usr/setup/setup.sql + +/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P $MSSQL_SA_PASSWORD -d master -i /usr/setup/setup.sql \ No newline at end of file diff --git a/docker/blocks/mssql/build/setup.sql.template b/docker/blocks/mssql/build/setup.sql.template new file mode 100644 index 00000000000..1746a18d241 --- /dev/null +++ b/docker/blocks/mssql/build/setup.sql.template @@ -0,0 +1,14 @@ +CREATE LOGIN %%USER%% WITH PASSWORD = '%%PWD%%' +GO + +CREATE DATABASE %%DB%%; +GO + +USE %%DB%%; +GO + +CREATE USER %%USER%% FOR LOGIN %%USER%%; +GO + +EXEC sp_addrolemember 'db_owner', '%%USER%%'; +GO diff --git a/docker/blocks/mssql/docker-compose.yaml b/docker/blocks/mssql/docker-compose.yaml index 3b684f1f115..538908fec72 100644 --- a/docker/blocks/mssql/docker-compose.yaml +++ b/docker/blocks/mssql/docker-compose.yaml @@ -1,10 +1,13 @@ - mssqltest: + mssql: build: - context: blocks/mssql + context: blocks/mssql/build environment: ACCEPT_EULA: Y MSSQL_SA_PASSWORD: Password! MSSQL_PID: Express + MSSQL_DATABASE: grafana + MSSQL_USER: grafana + MSSQL_PASSWORD: Password! ports: - "1433:1433" diff --git a/docker/blocks/mssql/setup.sh b/docker/blocks/mssql/setup.sh deleted file mode 100644 index 7a63282c6c6..00000000000 --- a/docker/blocks/mssql/setup.sh +++ /dev/null @@ -1,5 +0,0 @@ -#/bin/bash - -#wait for the SQL Server to come up -sleep 20s -/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P Password! -d master -i /usr/setup/setup.sql \ No newline at end of file diff --git a/docker/blocks/mssql/setup.sql b/docker/blocks/mssql/setup.sql deleted file mode 100644 index b0fdad166d3..00000000000 --- a/docker/blocks/mssql/setup.sql +++ /dev/null @@ -1,14 +0,0 @@ -CREATE LOGIN grafana WITH PASSWORD = 'Password!' -GO - -CREATE DATABASE grafana; -GO - -USE grafana; -GO - -CREATE USER grafana FOR LOGIN grafana; -GO - -EXEC sp_addrolemember 'db_owner', 'grafana'; -GO diff --git a/docker/blocks/mssql_tests/docker-compose.yaml b/docker/blocks/mssql_tests/docker-compose.yaml new file mode 100644 index 00000000000..5da6aad82af --- /dev/null +++ b/docker/blocks/mssql_tests/docker-compose.yaml @@ -0,0 +1,12 @@ + mssqltests: + build: + context: blocks/mssql/build + environment: + ACCEPT_EULA: Y + MSSQL_SA_PASSWORD: Password! + MSSQL_PID: Express + MSSQL_DATABASE: grafanatest + MSSQL_USER: grafana + MSSQL_PASSWORD: Password! + ports: + - "1433:1433" \ No newline at end of file diff --git a/pkg/services/sqlstore/sqlutil/sqlutil.go b/pkg/services/sqlstore/sqlutil/sqlutil.go index 806309ed236..46306ac8e0d 100644 --- a/pkg/services/sqlstore/sqlutil/sqlutil.go +++ b/pkg/services/sqlstore/sqlutil/sqlutil.go @@ -14,7 +14,7 @@ type TestDB struct { var TestDB_Sqlite3 = TestDB{DriverName: "sqlite3", ConnStr: ":memory:"} var TestDB_Mysql = TestDB{DriverName: "mysql", ConnStr: "grafana:password@tcp(localhost:3306)/grafana_tests?collation=utf8mb4_unicode_ci"} var TestDB_Postgres = TestDB{DriverName: "postgres", ConnStr: "user=grafanatest password=grafanatest host=localhost port=5432 dbname=grafanatest sslmode=disable"} -var TestDB_Mssql = TestDB{DriverName: "mssql", ConnStr: "server=localhost;port=1433;database=grafana_tests;user id=grafana;password=Password!"} +var TestDB_Mssql = TestDB{DriverName: "mssql", ConnStr: "server=localhost;port=1433;database=grafanatest;user id=grafana;password=Password!"} func CleanDB(x *xorm.Engine) { if x.DriverName() == "postgres" {