Deploy Report Server in a Windows Docker Container

Introduction

Docker containers are becoming increasingly popular. The combit Report Server can also be installed in a Windows Docker image and made available as a container. With the following instructions, you can create the container yourself.

Preparatory Steps

You will first need the following files:

ZIP file with configuration files
Download the following ZIP file with configuration files and unzip it to any directory.
combit Report Server - Docker-Container.zip (1.3 KB)

The following files are included:

  • Dockerfile
  • RunDocker.bat
  • web.config

Report Server Setup
Download the Report Server Setup (as a Windows Installer MSI file) and copy it to the directory where you unzipped the ZIP file.
Download (combit Report Server 29)
Download (combit Report Server 28)
Download (combit Report Server 27)

ASP.NET Core Runtime Hosting Bundle
Download the latest available ASP.NET Core Runtime Hosting Bundle from Microsoft and copy it to the directory where you unzipped the ZIP file.
Download (combit Report Server 28-29)
Download (combit Report Server 27)

Create Container

Customize Dockerfile

The Dockerfile defines the steps to create the Docker image. Open the file in any text editor. The file has the following structure:

# using a iis image speeds up the image build as IIS takes longer to install than the AspNetCoreModule
FROM mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019

SHELL ["cmd", "/S", "/C"]

# Create RS Cache folder
RUN mkdir "C:\ProgramData\combit\RS Cache"

SHELL ["powershell", "-command"]
COPY dotnet-hosting-*-win.exe /
COPY RS??ReportServerSetup.msi /

# Set shell to bare cmd.exe for installs
SHELL ["cmd", "/S", "/C"]

RUN start c:\dotnet-hosting-*-win.exe /q OPT_NO_RUNTIME=1 OPT_NO_SHAREDFX=1 OPT_NO_X86=1 /norestart
RUN msiexec /i C:\RS??ReportServerSetup.msi /qn ISDOCKER=1 IACCEPTCOMBITLICENSETERMS=True INSTALLDIR="C:\Program Files\combit\combit Report Server"

SHELL ["powershell", "-command"]
COPY ["./Fonts/*.ttf", "C:/Program Files/combit/combit Report Server/WebUI/Fonts/"]
COPY ["web.config", "C:/Program Files/combit/combit Report Server/WebUI/web.config"]

The FROM statement defines the used base image from Microsoft. This is a Windows Server Core 2019 image, which already contains the IIS for hosting the Report Server. If your Windows Host version is 21H2 or later, you can also use the 2022 version of the Windows Core Server:
mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2022.

You still need to make the following changes in the Dockerfile:

  1. RS??ReportServerSetup.msi: Replace the ?? wildcards here with the version of the downloaded file (e.g. RS28ReportServerSetup.msi).
  2. dotnet-hosting-*-win.exe: Replace the placeholder * here with the version of the downloaded file (e.g. dotnet-hosting-6.0.7-win.exe).

Install Fonts

Since in most cases only the font Lucon is available in the Windows Server Core Docker images, the necessary fonts must be made available in the container for generating the reports. For this purpose, create a folder Fonts in the directory of the other files and copy the required fonts into it. Using the following statement in the Dockerfile, these will automatically be copied into the Docker image:

COPY ["./Fonts/*.ttf", "C:/Program Files/combit/combit Report Server/WebUI/Fonts/"]

When the Report Server is started, these will then be installed for the current session.

Execute RunDocker.bat

Now run the RunDocker.bat file as an administrator. This will now create the Docker image based on the Dockerfile and start the container rscontainer. Then call the following address in the browser to complete the installation and configuration of the Report Server:

http://localhost:8080/combitreportserver