Report Server for .NET: Installation on Docker Container
The Report Server for .NET (RS.NET
) is ready for deployment on Docker Containers. The assets for non-Windows platforms are available as separate resources downloadable from your Telerik account.
This article is a step-by-step tutorial on deploying Telerik Report Server for .NET on a Linux Docker Container with a Microsoft SQL Server (MsSqlServer) Storage deployed on its own Docker Container based on the image mcr.microsoft.com/mssql/server:2019-latest
exposed publicly on port 1433
.
Installation Process
- Download the archive
Telerik_ReportServer_Net_NonWindows_{Report Server version}.zip
from your Telerik account. - Unzip the archive. The content gets deployed in two folders
ReportServer
andReportServiceAgent
. - Open the
Powershell
and navigate to the subfolderReportServer
. - Run the command
docker build -t telerik-report-server:local .
in Powershell to build the Report Server Manager image. - Navigate to the subfolder
ReportServiceAgent
. - Run the command
docker build -t telerik-report-server-agent:local .
in Powershell to build the Report Server ServiceAgent image. - Navigate to the subfolder
ReportServer\docker-configs
. -
Open the file
docker-compose.yml
in a text editor like Notepad++ and edit its content. Delete everything between the linesservices:
andstorage:
. Before the lineenvironments
include the next lines:ports: - "1433:1433"
The tabulation is essential and should be preserved. Here is the final content of the
docker-compose.yml
file:services: storage: image: "mcr.microsoft.com/mssql/server:2019-latest" restart: always ports: - "1433:1433" environment: - SA_PASSWORD=place_your_sa_password_here - ACCEPT_EULA=Y volumes: - mssql-storage:/var/opt/mssql volumes: mssql-storage:
Save the modified file.
Run the command
docker-compose up
in Powershell to execute the above script to create and run the MsSqlServer Docker container we are going to use as Report Server Storage.-
Open
MSSQL Management Studio
and Login with the following parameters:-
Server :
localhost
-
User :
sa
-
Password:
place_your_sa_password_here
(this is the argument SA_PASSWORD from the above script file. You may change it as required.)
-
Server :
Add the database named
reportserver
. After successfully creating the database, you may close the management studio.- Stop the current process in Powershell, for example, with the key combination
Ctrl+C
. -
Go back to the text editor with the opened file
docker-compose.yml
and restore its original content:services: # template configuration of Report Server. # Includes sample config for /app/Data File Storage. telerik-report-server: env_file: - mssql_storage.env image: telerik-report-server:local restart: always ports: - "82:80" depends_on: - storage # template configuration of Report Server Agent. # Includes sample config for /app/Data File Storage. telerik-report-server-agent: environment: - Agent__Name=FirstAgent, - Agent__Address=http://telerik-report-server-agent:80 env_file: - mssql_storage.env image: telerik-report-server-agent:local restart: always depends_on: - storage storage: image: "mcr.microsoft.com/mssql/server:2019-latest" restart: always environment: - SA_PASSWORD=place_your_sa_password_here - ACCEPT_EULA=Y volumes: - mssql-storage:/var/opt/mssql volumes: mssql-storage:
Save the file.
Go back to the Powershell environment and execute the above yaml file with the same command
docker-compose up
. This should run the Report Server Manager and ReportServer.ServiceAgent for .NET.- Navigate to
localhost:82
in the browser to open the Report Server Manager for .NET.
The first time you open the Report Server you need to configure it as explained in the article Application Startup.
Additional Resources
You may download and watch the whole process from our reporting-samples
GitHub repository: SetupRS.NET-Docker.zip.
Notes
The above approach for starting the RS.NET from the container will stop it each time you restart the machine. To avoid this, execute the following commands in Powershell from the folder .\ReportServer\docker-configs\ to start/stop the Report Server instead of using the commands docker-compose up
and docker-compose down
:
- (optional, use it only if it was not used before) Initialize a swarm to make the Docker Engine hosting the RS.NET a manager in the newly created single-node swarm:
docker swarm init
- Start the RS.NET with
.\start-docker-server.bat
- (optional) Stop the RS.NET with
.\stop-docker-server.bat