From 6b61c7d4544453e4214c87f755a8aef6a506f5c4 Mon Sep 17 00:00:00 2001 From: Ignacio Cabrera Date: Fri, 24 Mar 2017 12:31:38 -0300 Subject: [PATCH] adding MSSQL support --- docker-compose.yml | 16 ++++++++++++++++ env-example | 6 +++++- mssql/Dockerfile | 21 +++++++++++++++++++++ mssql/create_table.sh | 5 +++++ mssql/entrypoint.sh | 2 ++ mssql/setup.sql | 4 ++++ 6 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 mssql/Dockerfile create mode 100644 mssql/create_table.sh create mode 100644 mssql/entrypoint.sh create mode 100644 mssql/setup.sql diff --git a/docker-compose.yml b/docker-compose.yml index 97c9e004..ab03d106 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -156,6 +156,20 @@ services: ports: - "${MYSQL_PORT}:3306" +### MsSQL Container ######################################### + + mssql: + build: + context: ./mssql + environment: + - MSSQL_DATABASE=${MSSQL_DATABASE} + - SA_PASSWORD=${MSSQL_PASSWORD} + - ACCEPT_EULA=Y + volumes: + - mssql:/var/lib/mysql + ports: + - "${MSSQL_PORT}:1433" + ### MariaDB Container ####################################### mariadb: @@ -381,6 +395,8 @@ services: volumes: mysql: driver: "local" + mssql: + driver: "local" postgres: driver: "local" memcached: diff --git a/env-example b/env-example index 4405222f..e1d1efa1 100644 --- a/env-example +++ b/env-example @@ -69,13 +69,17 @@ MYSQL_PASSWORD=secret MYSQL_PORT=3306 MYSQL_ROOT_PASSWORD=root +### MSSQL Container +MSSQL_DATABASE=homestead +MSSQL_PASSWORD=yourStrong(!)Password +MSSQL_PORT=1433 + ### MARIADB Container MARIADB_DATABASE=default MARIADB_USER=default MARIADB_PASSWORD=secret MARIADB_PORT=3306 - ### POSTGRES Container POSTGRES_DB=default POSTGRES_USER=default diff --git a/mssql/Dockerfile b/mssql/Dockerfile new file mode 100644 index 00000000..fd9f0761 --- /dev/null +++ b/mssql/Dockerfile @@ -0,0 +1,21 @@ +FROM microsoft/mssql-server-linux + +# Create config directory +# an set it as WORKDIR +RUN mkdir -p /usr/src/app +WORKDIR /usr/src/app + +# Bundle app source +COPY . /usr/src/app + +RUN chmod +x /usr/src/app/create_table.sh + +ENV MSSQL_DATABASE=$MSSQL_DATABASE +ENV ACCEPT_EULA=Y +ENV SA_PASSWORD=$MSSQL_PASSWORD + +VOLUME /var/opt/mssql + +EXPOSE 1433 + +CMD /bin/bash ./entrypoint.sh \ No newline at end of file diff --git a/mssql/create_table.sh b/mssql/create_table.sh new file mode 100644 index 00000000..f0c1a7c6 --- /dev/null +++ b/mssql/create_table.sh @@ -0,0 +1,5 @@ +#wait for the SQL Server to come up +sleep 45s + +#run the setup script to create the DB and the schema in the DB +/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P $SA_PASSWORD -d master -i setup.sql \ No newline at end of file diff --git a/mssql/entrypoint.sh b/mssql/entrypoint.sh new file mode 100644 index 00000000..e3835130 --- /dev/null +++ b/mssql/entrypoint.sh @@ -0,0 +1,2 @@ +#start SQL Server, start the script to create the DB and import the data, start the app +/opt/mssql/bin/sqlservr.sh & /usr/src/app/create_table.sh & tail -f /dev/null \ No newline at end of file diff --git a/mssql/setup.sql b/mssql/setup.sql new file mode 100644 index 00000000..f453c778 --- /dev/null +++ b/mssql/setup.sql @@ -0,0 +1,4 @@ +CREATE DATABASE $(MSSQL_DATABASE); +GO +USE $(MSSQL_DATABASE); +GO \ No newline at end of file