瀏覽代碼

docker: mssql and mssql tests blocks with common build context

Marcus Efraimsson 7 年之前
父節點
當前提交
ef3588c1f8

+ 0 - 0
docker/blocks/mssql/Dockerfile → docker/blocks/mssql/build/Dockerfile


+ 0 - 0
docker/blocks/mssql/entrypoint.sh → docker/blocks/mssql/build/entrypoint.sh


+ 12 - 0
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

+ 14 - 0
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

+ 5 - 2
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"
 

+ 0 - 5
docker/blocks/mssql/setup.sh

@@ -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

+ 0 - 14
docker/blocks/mssql/setup.sql

@@ -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

+ 12 - 0
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"

+ 1 - 1
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" {