.NETCore & SQL Docker Image for Container Isolated Development & GitHub CodeSpaces (#9835)

* .NETCore & SQL Docker Image

https://github.com/microsoft/vscode-dev-containers/tree/master/containers/dotnet-mssql

* Set the C# extension aka Omnisharp to use the umbraco-netcore-only.sln

* A new script in the postCreate of the docker image to npm install client stuff and initial dotnet build of SLN to help just running straight away

* Remove bash script - doing npm install stuff & dotnet build was hard to see log output and taking longer for image to start

* Adds in port 9000 and friendly label

* Ensure user notified about auto port forward with notification

* Comment out image min of assets as causing problems and eating way too much time up atm - need to revisit

* Automated launch & tasks VSCode JSON files - updated to run client npm install and npm run build before running website

* Update .gitattributes for line ending help for codespaces

https://code.visualstudio.com/docs/remote/troubleshooting#_resolving-git-line-ending-issues-in-containers-resulting-in-many-modified-files

* Tidy up

* Remove npm install from the npm run build step - kinda annoying when you re-run it

* Rather everytime attaching the debugger doing a full npm install, gulp dev and dotnet build is overkill, just build the SLN before debugging

* Update gitignore with casing rules

* Revert "Update .gitattributes for line ending help for codespaces"

This reverts commit 28316d1ba8a552751eef2f211b68531484344153.

* Sets the global user for npm as root

https://stackoverflow.com/a/45505787

* File permission stuff for NPM & Gifsicle binary source compilation from gulp-imagemin

* Revert "Comment out image min of assets as causing problems and eating way too much time up atm - need to revisit"

This reverts commit be48db9653bc58a69422d131b65955985e115e29.

* Add chromium-browser to try & get JS tests to run happy in CodeSpaces

* Set DB connection string & unattended install config to true so we can skip installer flow

* Add in ENV variables to setup the unattended install user

* Try to add SMTP4Dev from Bjarke Recommendation

* Need to specify the port mappings for SMTP4Dev

* Lovely syntax error in docker compose file

* Update ENV variables to renamed settings now this feature merged into NETCore branch by Bjarke

* Needed to match the hostname that SMTP4Dev was listening on, had assumed it would be reachable via localhost

* Fix folder naminng to make UNIX happy running JS tests

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
This commit is contained in:
Warren Buckley
2021-06-07 12:23:15 +01:00
committed by GitHub
parent 2825ec6693
commit c23efec854
11 changed files with 523 additions and 7 deletions

View File

@@ -0,0 +1,64 @@
#!/bin/bash
dacpac="false"
sqlfiles="false"
SApassword=$1
dacpath=$2
sqlpath=$3
echo "SELECT * FROM SYS.DATABASES" | dd of=testsqlconnection.sql
for i in {1..60};
do
/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P $SApassword -d master -i testsqlconnection.sql > /dev/null
if [ $? -eq 0 ]
then
echo "SQL server ready"
break
else
echo "Not ready yet..."
sleep 1
fi
done
rm testsqlconnection.sql
for f in $dacpath/*
do
if [ $f == $dacpath/*".dacpac" ]
then
dacpac="true"
echo "Found dacpac $f"
fi
done
for f in $sqlpath/*
do
if [ $f == $sqlpath/*".sql" ]
then
sqlfiles="true"
echo "Found SQL file $f"
fi
done
if [ $sqlfiles == "true" ]
then
for f in $sqlpath/*
do
if [ $f == $sqlpath/*".sql" ]
then
echo "Executing $f"
/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P $SApassword -d master -i $f
fi
done
fi
if [ $dacpac == "true" ]
then
for f in $dacpath/*
do
if [ $f == $dacpath/*".dacpac" ]
then
dbname=$(basename $f ".dacpac")
echo "Deploying dacpac $f"
/opt/sqlpackage/sqlpackage /Action:Publish /SourceFile:$f /TargetServerName:localhost /TargetDatabaseName:$dbname /TargetUser:sa /TargetPassword:$SApassword
fi
done
fi