Trouble Viewing Images? Right-click on any image and select "Open in new tab" to view a larger version. You can also zoom in using Ctrl + Mouse Wheel for easier readability.
Article Goal
This article explains how to set up a WebReports Docker container and update an existing Docker deployment. The command examples use PowerShell with Docker Desktop on Windows. For supported Linux environments, adapt the host paths and shell syntax to your environment.
Requirements and Network Topology
For more information on the System Requirements and Network Topology, please read this article.
A Microsoft SQL or MySQL (version 8 or higher) Database is required for the WebReports application. If you already have a Microsoft SQL Server / MySQL Database running, you can skip the Docker Container Setup steps below.
A valid certificate is required for the WebReports application to run. In the example below we are referencing a .pfx file, which is called when starting the Docker Image. Please see your system documentation for creating a valid certificate/pfx file.
Microsoft SQL / MySQL Server Database Docker Container Setup
1. Open Windows PowerShell
2. Modify then execute the following command to Install MS SQL / MySQL.
NOTE: The password is being set in this command, please change the orange text in the command to your desired password.
MS SQL Command:
My!S3cr3tPassw@rdMySQL:
docker run --name WebReportsMySQL -e MYSQL_ROOT_PASSWORD=My!S3cr3tPassw@rd -d mysql:latest
3. Wait for the install to finish.
4. Execute the following command.
docker ps
5. Copy your CONTAINER ID.
6. Modify then execute the following command after replacing the text in orange with your copied CONTAINER ID from step 8.
docker inspect 4655319a9523
7. Copy the IPAddress. This IP address will be used in the "DefaultConnection" section of the appsettings.json file.
WebReports Docker Image Setup
1. Run the following command, in Power Shell, to download the WebReports application.
docker pull bridgeworks/bridgeworksreportsweb
2. Wait for the download process to complete.
3. To start up the BridgeWorksWR Docker image, run the following command in Power Shell.
It's important to replace SECRETPASSWORD with the password to your pfx file. The command below references aspnetapp.pfx. If your pfx file has a different name, please change the file name in the command to reflect your environment.
Please note: You MUST have a valid pfx file in your %USERPROFILE%\.aspnet\https directory.
docker run --name BridgeWorksWR -p 443:443 -e ASPNETCORE_URLS="https://+;http://+" -e ASPNETCORE_HTTPS_PORT=443 -e ASPNETCORE_Kestrel__Certificates__Default__Password="SECRETPASSWORD" -e ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx -v $env:USERPROFILE\.aspnet\https:/https/ --dns=8.8.8.8 -td bridgeworks/bridgeworksreportsweb:latest
4. Execute the following command to download the default appsettings.json file to the c:\temp directory (verify the c:\temp directory exists on your system or choose an alternate path).
docker cp BridgeWorksWR:/app/appsettings.json c:\temp
5. Edit the appsettings.json file with a text editor, and update DefaultConnection string, the LicenseKey and CompanyID. All three are required for the docker container to start properly. Save the file.
- IPAddress - The IP address of your Microsoft SQL Server Instance.
- User ID - The username to your Microsoft SQL Server Instance.
- Password - The password to your Microsoft SQL Server Instance.
Using Microsoft SQL Server
- Make sure the Microsoft SQL default connection is not commented out ( // ) and that the MySQL connection is commented out with //.
- Server (Found at step 2 - Configure Your Microsoft SQL Server Instance In SSMS)
- Instance Name (Found at step 7 - Microsoft SQL Express 2025 SSMS Installation)
- Database (Found at step 9 - Configure Your Microsoft SQL Server Instance In SSMS)
- User ID (Found at step 11 - Configure Your Microsoft SQL Server Instance In SSMS)
- Password (Found at step 13 - Configure Your Microsoft SQL Server Instance In SSMS)
- Set the database type to MSSQL
Example Connection String for MSSQL: "DefaultConnection": "Server=172.17.0.2,1433;Database=WebReports;User Id=sa;Password=secretpassword;Encrypt=Yes;TrustServerCertificate=Yes;Connect Timeout=60"
Using MySQL
- Make sure the MySQL default connection is not commented out ( // ) and that the Microsoft SQL connection is.
- Server (Name / IP address of the server hosting MySQL)
- Port (Set at step 8 - Installing MySQL)
- Database (Set the name of your WebReports database here - Default can just use WebReports)
- User ID (Set at step 11 - Installing MySQL)
- Password (Set at step 11 - Installing MySQL)
- Set the database type to MYSQL
Example Connection String for MySQL: "DefaultConnection": "server=MySQLServerName;Port=TCPPort;user=YourMySQLUser;password=YourMySQLPassword;database=WebReports;connect timeout=60;Pooling=False"
ConnectionStrings: Information available by following the corresponding links.
LicenseKey: Available on your VDM subscription and registration information form.
CompanyID: Available on your VDM subscription and registration information form.
NOTE: Regarding IRIS and Cache databases running in Linux Docker: If the IRIS/Cache server will use a FQDN, you'll need to set the ResolveIP setting to true. When InterSystems drivers run in .Net 5/6 they do not automatically resolve DNS names. If the connection profile to the database will utilize an IP address, this setting should be false.
6. Execute the following command to copy the modified appsettings.json file to the BridgeWorksWR image.
docker cp c:\temp\appsettings.json BridgeWorksWR:/app/
7. Go to Docker Desktop and start the BridgeWorksWR Image. Confirm the BridgeWorksWR Docker Image has started and navigate to https://localhost.
Update an Existing WebReports Docker Deployment
WebReports 2026.10.12.1 updates .NET packages for general security maintenance and refreshes the Docker image to use .NET 10.0.13. See the 2026.10.12.1 release notes.
To apply an updated image, pull the image and create a replacement container. Restarting an existing container continues to use the image from which that container was created.
The examples below use PowerShell on the Docker host and the container name BridgeWorksWR. Adapt paths, names, and options to your deployment. For Linux hosts, use Linux host paths and the syntax appropriate to your shell.
1. Record the Existing Deployment and Prepare Backups
Plan a maintenance window and test the update in a non-production environment first. Create a new backup directory, such as C:\temp\WebReportsUpgrade, before running the backup commands. Use a different directory for each upgrade.
docker inspect BridgeWorksWR > C:\temp\WebReportsUpgrade\container-inspect.jsonKeep the original deployment command or Compose file and record the current image ID, ports, environment variables, certificate path, bind mounts, named or anonymous volumes, networks, DNS settings, restart policy, and any custom options. The inspection file can contain credentials; store it with restricted access.
Identify and back up the application database, certificate files, and all persistent storage containing generated reports, uploaded files, or other application data. Record the actual container paths used by your deployment. Files stored only in the old container will not automatically appear in the replacement container. Do not remove the old container, its image, or its volumes during the upgrade.
2. Pull the Updated Image
docker pull bridgeworks/bridgeworksreportsweb:latestWait for the pull to finish successfully before proceeding. The latest tag changes as new releases are published; verify the WebReports version after deployment rather than assuming that this tag always identifies 2026.10.12.1.
3. Stop and Retain the Current Container
Stop WebReports to prevent application writes while completing the backup. If any application data is shared with other writers, coordinate the backup with those services as well.
docker stop BridgeWorksWRFor the setup shown in this article, copy the existing configuration from the stopped container:
docker cp BridgeWorksWR:/app/appsettings.json C:\temp\WebReportsUpgrade\appsettings.jsonComplete and verify the backups of persistent data before continuing. If configuration or data is in a host bind mount or Docker volume, back up that storage using the appropriate host or database backup procedure. For files stored only inside the container, copy the required data directories to the backup location using their actual paths.
Rename the stopped container so that it remains available for rollback. Confirm that the backup name is unused, or choose a different name and use it consistently in the remaining steps.
docker rename BridgeWorksWR BridgeWorksWR-before-upgrade4. Create the Replacement Container Without Starting It
Use docker create with the updated image and the options from your existing deployment. This lets you restore configuration before the application starts.
The following example matches the HTTPS setup earlier in this article. Replace SECRETPASSWORD and the certificate filename with your existing values. Include all additional mounts, networks, environment variables, restart settings, and other options recorded in step 1.
docker create --name BridgeWorksWR -p 443:443 -e ASPNETCORE_URLS="https://+;http://+" -e ASPNETCORE_HTTPS_PORT=443 -e ASPNETCORE_Kestrel__Certificates__Default__Password="SECRETPASSWORD" -e ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx -v $env:USERPROFILE\.aspnet\https:/https/ --dns=8.8.8.8 bridgeworks/bridgeworksreportsweb:latestReconnect the same persistent storage at the same container paths. Explicitly reuse existing anonymous volumes by their recorded volume names when applicable. Do not start the new container until configuration, certificates, and required data are available.
5. Restore Configuration and Application Data
If appsettings.json is stored inside the container as in the setup above, save the new image's template for comparison before restoring your configuration:
docker cp BridgeWorksWR:/app/appsettings.json C:\temp\WebReportsUpgrade\appsettings.new.jsonCompare the template with your backup and apply any settings required by the release notes while preserving your connection strings, LicenseKey, CompanyID, and other environment-specific values. Copy the prepared configuration into the new container:
docker cp C:\temp\WebReportsUpgrade\appsettings.json BridgeWorksWR:/app/appsettings.jsonIf configuration is supplied through a bind mount or volume, update that configuration source instead. Restore any application data previously kept only inside the old container to the corresponding data paths in the new container, and verify file permissions. Restore data folders only; retain the application binaries and static assets supplied by the new image.
6. Start and Verify WebReports
docker start BridgeWorksWR
docker logs BridgeWorksWROpen the WebReports URL and verify the expected application version, sign-in, database connectivity, report execution, access to stored reports and files, and any scheduled processing used by your environment. Confirm that the original configuration and certificate are in use.
For startup errors, see Troubleshooting Docker Startup. Keep the previous container and backups until the update has been verified.
If You Need to Roll Back
Stop the replacement container and retain it under a different unused name before returning the original container to its previous name:
docker stop BridgeWorksWR
docker rename BridgeWorksWR BridgeWorksWR-upgrade-failed
docker rename BridgeWorksWR-before-upgrade BridgeWorksWRBefore restarting the original container, check whether the update modified the shared database, configuration, or data storage. Renaming containers does not reverse those changes. Restore the corresponding backups when required, and contact BridgeWorks Support if compatibility is uncertain.
docker start BridgeWorksWRVerify that the previous deployment works correctly before ending the maintenance window.
Comments
0 comments
Please sign in to leave a comment.