Skip to content

Commit ab5e142

Browse files
committed
Changes:
- Fixed EOLs - Implemented health checking on startup - Fixed non-configurable connection string settings - Upgraded version to 1.2.0
1 parent ef0611a commit ab5e142

File tree

4 files changed

+62
-11
lines changed

4 files changed

+62
-11
lines changed

Examples/Data/scripts/rat.sql

+3-4
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,10 @@
33
USE master
44
GO
55

6-
ALTER DATABASE Rat SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
7-
86
-- Create the new database if it does not exist already
97
IF EXISTS (SELECT [name] FROM sys.databases WHERE [name] = N'Rat')
10-
DROP DATABASE rat
8+
ALTER DATABASE Rat SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
9+
DROP DATABASE rat
1110

1211
CREATE DATABASE Rat
1312
GO
@@ -22,7 +21,7 @@ CREATE TABLE [dbo].[Configuration]
2221
[Expires] INT NOT NULL DEFAULT(60)
2322

2423
CONSTRAINT [PK_Configuration_Id] PRIMARY KEY ([Id] ASC),
25-
CONSTRAINT [UQ_Configuration_Key] UNIQUE ([Key])
24+
CONSTRAINT [UQ_Configuration_Key] UNIQUE ([Key])
2625
);
2726

2827
GO

docker-compose.yml

+4
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ services:
4242
build:
4343
context: ./src
4444
dockerfile: Dockerfile
45+
environment:
46+
- SERVER_INSTANCE=sqlserver
47+
- USER_ID=sa
48+
- PASSWORD=Password1!
4549
depends_on:
4650
- sqlserver
4751
stdin_open: true

src/VERSION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.0.1
1+
1.2.0

src/entrypoint.sh

+54-6
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,15 @@
22

33
main() {
44

5-
export PATH=$PATH:/opt/mssql-tools/bin
5+
validateInptus $SERVER_INSTANCE
6+
validateInptus $USER_ID
7+
validateInptus $PASSWORD
68

7-
echo "Work directory: $PWD"
9+
export PATH=$PATH:/opt/mssql-tools/bin
10+
11+
echo "Work directory: $PWD"
12+
13+
wiatForServerToBecomeHealthy
814

915
cd shower
1016
input="playlist"
@@ -20,24 +26,66 @@ main() {
2026
cd scripts
2127
echo "WORKDIR: $PWD"
2228

23-
for i in $(echo $PLAYLIST | sed "s/,/ /g")
29+
for i in $(echo $PLAYLIST | sed "s/,/ /g")
2430
do
2531
echo "Start running script: $i"
26-
sqlcmd -S sqlserver -U sa -P Password1! -i $i || exit 1
32+
sqlcmd -S $SERVER_INSTANCE -U $USER_ID -P $PASSWORD -i $i || exit 1
2733
echo "Finished running script: $i"
2834
done
2935

3036
outro
3137
}
3238

39+
validateInptus() {
40+
if [ -z "$1" ];
41+
then
42+
echo "$1 variable is not set"
43+
exit 1
44+
fi;
45+
}
46+
47+
wiatForServerToBecomeHealthy() {
48+
49+
HEALTHY=0;
50+
COUNTER=0;
51+
52+
echo "HEALTHY: $HEALTHY and COUNTER: $COUNTER";
53+
54+
while [ $HEALTHY = 0 ] && [ $COUNTER -lt 5 ]
55+
do
56+
57+
if [ $COUNTER -gt 0 ];
58+
then
59+
sleep 5
60+
fi;
61+
62+
COUNTER=$(($COUNTER + 1));
63+
HEALTHY=1;
64+
65+
echo "Starting health check. Try number: $COUNTER"
66+
sqlcmd -S $SERVER_INSTANCE -U $USER_ID -P $PASSWORD -Q "SELECT 1" || HEALTHY=0
67+
echo "Finished health check. Server: $SERVER_INSTANCE is healthy: $HEALTHY"
68+
done;
69+
70+
if [ $HEALTHY -eq 0 ];
71+
then
72+
echo "SQL Server Instance $SERVER_INSTANCE is unhealthy."
73+
74+
exit 1;
75+
else
76+
echo "Sql Server Instance $SERVER_INSTANCE is healthy."
77+
fi;
78+
};
79+
3380
buildPlaylist() {
3481
if [ -z "$1" ];
3582
then
3683
PLAYLIST=$2
3784
else
3885
PLAYLIST=$1,$2
3986
fi;
40-
}
87+
};
88+
4189
outro() {
4290
echo "\t\t" ' .--./""---.._ '
4391
echo "\t\t" ' /`.-.| //\\ '
@@ -46,6 +94,6 @@ outro() {
4694
echo "\t\t" ' `.\\:// `-. `-. '
4795
echo "\t\t" ' '--' `. `. '
4896
echo "\t\t" ' '. . '-. '
49-
}
97+
};
5098

5199
main

0 commit comments

Comments
 (0)