.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:
61
.devcontainer/devcontainer.json
Normal file
61
.devcontainer/devcontainer.json
Normal file
@@ -0,0 +1,61 @@
|
||||
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
|
||||
// https://github.com/microsoft/vscode-dev-containers/tree/v0.158.0/containers/dotnet-mssql
|
||||
{
|
||||
"name": "C# (.NET) and MS SQL",
|
||||
"dockerComposeFile": "docker-compose.yml",
|
||||
"service": "app",
|
||||
"workspaceFolder": "/workspace",
|
||||
|
||||
// Set *default* container specific settings.json values on container create.
|
||||
"settings": {
|
||||
"terminal.integrated.shell.linux": "/bin/bash",
|
||||
"mssql.connections": [
|
||||
{
|
||||
"server": "localhost,1433",
|
||||
"database": "",
|
||||
"authenticationType": "SqlLogin",
|
||||
"user": "sa",
|
||||
"password": "P@ssw0rd",
|
||||
"emptyPasswordInput": false,
|
||||
"savePassword": false,
|
||||
"profileName": "mssql-container"
|
||||
}
|
||||
],
|
||||
"omnisharp.defaultLaunchSolution": "umbraco-netcore-only.sln",
|
||||
"omnisharp.enableDecompilationSupport": true,
|
||||
"omnisharp.enableRoslynAnalyzers": true
|
||||
},
|
||||
|
||||
// Add the IDs of extensions you want installed when the container is created.
|
||||
"extensions": [
|
||||
"ms-dotnettools.csharp",
|
||||
"ms-mssql.mssql"
|
||||
],
|
||||
|
||||
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
||||
// 1433 for SQL if you want to connect from local into the one running inside the container
|
||||
// Can connect to the SQL Server running in the image on local with 'host.docker.internal' as hostname
|
||||
"forwardPorts": [1433, 9000, 5000, 25],
|
||||
|
||||
// [Optional] To reuse of your local HTTPS dev cert:
|
||||
//
|
||||
// 1. Export it locally using this command:
|
||||
// * Windows PowerShell:
|
||||
// dotnet dev-certs https --trust; dotnet dev-certs https -ep "$env:USERPROFILE/.aspnet/https/aspnetapp.pfx" -p "SecurePwdGoesHere"
|
||||
// * macOS/Linux terminal:
|
||||
// dotnet dev-certs https --trust; dotnet dev-certs https -ep "${HOME}/.aspnet/https/aspnetapp.pfx" -p "SecurePwdGoesHere"
|
||||
//
|
||||
// 2. Uncomment these 'remoteEnv' lines:
|
||||
// "remoteEnv": {
|
||||
// "ASPNETCORE_Kestrel__Certificates__Default__Password": "SecurePwdGoesHere",
|
||||
// "ASPNETCORE_Kestrel__Certificates__Default__Path": "/home/vscode/.aspnet/https/aspnetapp.pfx",
|
||||
// },
|
||||
//
|
||||
// 3. Next, copy your certificate into the container:
|
||||
// 1. Start the container
|
||||
// 2. Drag ~/.aspnet/https/aspnetapp.pfx into the root of the file explorer
|
||||
// 3. Open a terminal in VS Code and run "mkdir -p /home/vscode/.aspnet/https && mv aspnetapp.pfx /home/vscode/.aspnet/https"
|
||||
|
||||
// postCreateCommand.sh parameters: $1=SA password, $2=dacpac path, $3=sql script(s) path
|
||||
"postCreateCommand": "bash .devcontainer/mssql/postCreateCommand.sh 'P@ssw0rd' './bin/Debug/' './.devcontainer/mssql/'"
|
||||
}
|
||||
Reference in New Issue
Block a user