diff --git a/Dockerfile.windows b/Dockerfile.windows new file mode 100644 index 000000000..1b1860fd2 --- /dev/null +++ b/Dockerfile.windows @@ -0,0 +1,20 @@ +FROM microsoft/dotnet:1.0.0-preview2.1-nanoserver-sdk + +SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop';"] + +# REMARK: Temporary workaround for Windows DNS client weirdness +RUN set-itemproperty -path 'HKLM:\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters' -Name ServerPriorityTimeLimit -Value 0 -Type DWord + +RUN New-Item -Path \MusicStore\samples\MusicStore.Standalone -Type Directory +WORKDIR MusicStore + +ADD samples/MusicStore.Standalone/project.json samples/MusicStore.Standalone/project.json +ADD NuGet.config . +RUN dotnet restore --no-cache .\samples\MusicStore.Standalone + +ADD samples samples +RUN dotnet build .\samples\MusicStore.Standalone + +EXPOSE 5000 +ENV ASPNETCORE_URLS http://0.0.0.0:5000 +CMD dotnet run -p .\samples\MusicStore.Standalone diff --git a/README.md b/README.md index 9099dd877..cc4931b8f 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,13 @@ This project is part of ASP.NET Core. You can find samples, documentation and ge * **[CustomHost]:** 6. Run `dnx . run` (This hosts the app in a console application - Application started at URL **http://localhost:5003/**). +## Run on Docker Windows Containers + + * [Setup up Docker Windows containers](https://msdn.microsoft.com/en-us/virtualization/windowscontainers/containers_welcome) + * `docker-compose -f .\docker-compose.windows.yml build` + * `docker-compose -f .\docker-compose.windows.yml up` + * Access MusicStore on either the Windows VM IP or (if container is running locally) on the container IP: `docker inspect -f "{{ .NetworkSettings.Networks.nat.IPAddress }}" musicstore_web_1` + ## To run the sample on Mac/Mono: * Follow the instructions at the [Home](https://github.com/aspnet/Home) repository to install Mono and DNVM on Mac OS X. * Open a command prompt and execute `cd \src\MusicStore\`. diff --git a/docker-compose.windows.yml b/docker-compose.windows.yml new file mode 100644 index 000000000..5f42aba67 --- /dev/null +++ b/docker-compose.windows.yml @@ -0,0 +1,24 @@ +version: '2' +services: + db: + image: microsoft/mssql-server-2016-express-windows + environment: + sa_password: "Password1" + ports: + - "1433:1433" # for debug. Remove this for production + + web: + build: + context: . + dockerfile: Dockerfile.windows + environment: + - "Data:DefaultConnection:ConnectionString=Server=db,1433;Database=MusicStore;User Id=sa;Password=Password1;MultipleActiveResultSets=True" + depends_on: + - "db" + ports: + - "5000:5000" + +networks: + default: + external: + name: nat \ No newline at end of file