diff --git a/.gitattributes b/.gitattributes index 48e8fa1..3f0c902 100644 --- a/.gitattributes +++ b/.gitattributes @@ -11,6 +11,7 @@ # Declare files that will always have CRLF line endings on checkout. *.sh text eol=lf +*.yml text eof=lf # Denote all files that are truly binary and should not be modified. *.png binary diff --git a/docker-compose-generator/.dockerignore b/docker-compose-generator/.dockerignore new file mode 100644 index 0000000..5a76cae --- /dev/null +++ b/docker-compose-generator/.dockerignore @@ -0,0 +1,124 @@ +# Build Folders (you can keep bin if you'd like, to store dlls and pdbs) +**/[Bb]in/ +**/[Oo]bj/ +node_modules/ +dist/ + +# mstest test results +TestResults + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results +[Dd]ebug/ +[Rr]elease/ +x64/ +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.log +*.vspscc +*.vssscc +.builds + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper* + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish + +# Publish Web Output +*.Publish.xml + +# NuGet Packages Directory +packages + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +[Bb]in +[Oo]bj +sql +TestResults +[Tt]est[Rr]esult* +*.Cache +ClientBin +[Ss]tyle[Cc]op.* +~$* +*.dbmdl +Generated_Code #added for RIA/Silverlight projects + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML + +src/Rapporteringsregisteret.Web/assets/less/*.css + +MetricResults/ +*.sln.ide/ + +_configs/ + +# vnext stuff +bower_components +output + +.vs +**/launchSettings.json diff --git a/docker-compose-generator/Dockerfile b/docker-compose-generator/Dockerfile new file mode 100644 index 0000000..ee3eefa --- /dev/null +++ b/docker-compose-generator/Dockerfile @@ -0,0 +1,19 @@ +FROM microsoft/aspnetcore-build:2.0.6-2.1.101-stretch AS builder +WORKDIR /source +COPY src/docker-compose-generator.csproj docker-compose-generator.csproj +# Cache some dependencies +RUN dotnet restore +COPY src/. . +RUN dotnet publish --output /app/ --configuration Release + +FROM microsoft/aspnetcore:2.0.6-stretch +WORKDIR /app + +RUN mkdir /datadir +ENV APP_DATADIR=/datadir +VOLUME /datadir + +COPY --from=builder "/app" . +COPY docker-fragments docker-fragments + +ENTRYPOINT ["dotnet", "docker-compose-generator.dll"] diff --git a/docker-compose-generator/src/Program.cs b/docker-compose-generator/src/Program.cs index 0c1357a..299b663 100644 --- a/docker-compose-generator/src/Program.cs +++ b/docker-compose-generator/src/Program.cs @@ -101,11 +101,16 @@ namespace DockerGenerator private string FindLocation(string path) { + string directory = path; + int i = 0; while(true) { + if(i > 10) + throw new DirectoryNotFoundException(directory); if(Directory.Exists(path)) return path; path = Path.Combine("..", path); + i++; } } } diff --git a/generate-docker-compose.ps1 b/generate-docker-compose.ps1 index d2d2e84..a3dba1e 100644 --- a/generate-docker-compose.ps1 +++ b/generate-docker-compose.ps1 @@ -1 +1,2 @@ -cd .\docker-compose-generator; dotnet run -p .\src\docker-compose-generator.csproj; cd ..; \ No newline at end of file +docker build -t btcpayserver/docker-compose-generator "$(Get-Location)\docker-compose-generator" +docker run -v "$(Get-Location)\Production:/app/Production" -v "$(Get-Location)\Production-NoReverseProxy:/app/Production-NoReverseProxy" --rm btcpayserver/docker-compose-generator \ No newline at end of file diff --git a/generate-docker-compose.sh b/generate-docker-compose.sh new file mode 100644 index 0000000..17709f5 --- /dev/null +++ b/generate-docker-compose.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +docker build -t btcpayserver/docker-compose-generator "$(pwd)/docker-compose-generator" +docker run -v "$(pwd)/Production:/app/Production" -v "$(pwd)/Production-NoReverseProxy:/app/Production-NoReverseProxy" --rm btcpayserver/docker-compose-generator \ No newline at end of file