Installing using Docker

The installation using Docker is the recommended method to deploy DS Server on one or more servers. The easiest way to test the installation is to install Docker for Windows to create the DS Server Docker image.

The following tutorial shows how to create a Dockerfile to create a working image.

  1. Create a new folder and name it DSServerDocker.

  2. Download the ZIP file from the online store (DS-0110-XB.zip) that contains all the required files for your private DS Server installation and copy it into the created folder DSServerDocker.

  3. Create a file named Dockerfile (no extension), open it using any editor and paste the following content into it:

    # https://hub.docker.com/_/microsoft-windows-servercore
    # "ltsc2016" to get fonts installed
    
    FROM mcr.microsoft.com/windows/servercore:ltsc2016
    
    # Copy the zip folder application to "C:\" on container machine
    
    COPY DS-0300-XB.zip DS-0300-XB.zip
    
    SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
    
    # Unzip the application to "C:\DocumentServices"
    
    RUN Expand-Archive -Path DS-0300-XB.zip -DestinationPath C:\DocumentServices
    
    # Install IIS
    
    RUN Enable-WindowsOptionalFeature -Online -FeatureName IIS-WebServerRole; \
        Enable-WindowsOptionalFeature -Online -FeatureName IIS-WebServer; \
        Enable-WindowsOptionalFeature -Online -FeatureName IIS-CommonHttpFeatures; \
        Enable-WindowsOptionalFeature -Online -FeatureName IIS-WebSockets
    
    # Download and install Visual C++ Redistributable Packages for Visual Studio 2013
    
    RUN Invoke-WebRequest -OutFile vc_redist.x64.exe https://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_x64.exe; \
        Start-Process "vc_redist.x64.exe" -ArgumentList "/passive" -wait -Passthru; \
        del vc_redist.x64.exe
    
    # Download and install Visual C++ Redistributable Packages for Visual Studio 2015
    
    RUN Invoke-WebRequest -OutFile vc_redist.x64.exe https://download.microsoft.com/download/6/A/A/6AA4EDFF-645B-48C5-81CC-ED5963AEAD48/vc_redist.x64.exe; \
        Start-Process "vc_redist.x64.exe" -ArgumentList "/passive" -wait -Passthru; \
        del vc_redist.x64.exe
    
    # Install ASP.NET Core Runtime
    # Checksum and direct link from: https://dotnet.microsoft.com/permalink/dotnetcore-current-windows-runtime-bundle-installer
    
    RUN Invoke-WebRequest -OutFile dotnet-hosting-6.0.9-win.exe https://download.visualstudio.microsoft.com/download/pr/eaa3eab9-cc21-44b5-a4e4-af31ee73b9fa/d8ad75d525dec0a30b52adc990796b11/dotnet-hosting-6.0.9-win.exe; \
            Start-Process "dotnet-hosting-6.0.9-win.exe" -ArgumentList "/passive" -wait -Passthru; \
            Remove-Item -Force dotnet-hosting-6.0.9-win.exe;
    
    # Install ASP.NET Desktop Runtime
    # Checksum and direct link from: https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-desktop-6.0.9-windows-x64-installer
                    
    RUN Invoke-WebRequest -OutFile windowsdesktop-runtime-6.0.9-win-x64.exe https://download.visualstudio.microsoft.com/download/pr/fe8415d4-8a35-4af9-80a5-51306a96282d/05f9b2a1b4884238e69468e49b3a5453/windowsdesktop-runtime-6.0.9-win-x64.exe; \
            Start-Process "windowsdesktop-runtime-6.0.9-win-x64.exe" -ArgumentList "/passive" -wait -Passthru; \
            Remove-Item -Force windowsdesktop-runtime-6.0.9-win-x64.exe;
    ​
    # Create a new IIS ApplicationPool
    
    RUN $appPoolName = 'DSServer'; \
        New-WebAppPool $appPoolName; \
        Import-Module WebAdministration; \
        $appPool = Get-Item IIS:\AppPools\$appPoolName; \
        $appPool.managedRuntimeVersion = ''; \
        $appPool | set-item
    
    RUN $appPoolName = 'DSServer'; \
        $appName = 'DocumentServices'; \
        New-WebApplication -Name $appName -Site 'Default Web Site' -PhysicalPath C:\DocumentServices -ApplicationPool $appPoolName
    
    # Remove files
    RUN del DS-0300-XB.zip
    
  4. Assume that you have installed Docker for Windows, open a PowerShell command window with explicit administrator rights and change to the directory where you created the folder docker-test.

  5. Type in the following command to build the Docker image based on the Dockerfile in the same directory:

    docker build -t dsserver .

  6. Start the container with one of the following commands:

    docker run -it -p 5000:80 --name mydsserver dsserver

  7. In the Docker Dashboard, you can see the running container listening on port 5000. Open a browser and navigate to http://localhost:5000/DocumentServices to see your deployed web application.