Report Server Deployment With Docker: A Step-by-Step Guide
Tags: reportingtools, designer, reportdesigner, reportviewer
Published: 2023-07-10 08:08:26

In the ever-evolving landscape of software development, Docker has emerged as a leading platform for containerization, revolutionizing application deployments. As organizations adopt containerization technologies, the importance of efficient report server deployments becomes increasingly crucial.

The Bold Reports’ Report Server offers an easy and cost-effective solution to incorporating reporting capabilities into containerized environments, eliminating the need for extensive development efforts. With the Report Server, creating, managing, and sharing reports becomes effortless, requiring no coding expertise. In this blog, we will explore the process of deploying a report server with Docker, empowering you to leverage containerization’s full potential for streamlined reporting.

**Prerequisites**
When deploying the Bold Reports Report Server on Docker, make sure you have the following hardware and software prerequisites to ensure smooth operation and optimal performance.

**Hardware requirements**

1. A CPU with at least 4 cores.
2. A minimum of 16 GB of RAM.
3. A minimum of 8 GB of available disk space or more.

**Software requirements**

1. Docker
2. A database such as Microsoft SQL Server 2012 or higher, PostgreSQL, or MySQL. Ensure that the database is accessible from outside the machine.
3. Web browser.
4. Operating system Supported operating systems can be obtained here.

**Deployment**
In this section, we will walk through a step-by-step demonstration of deploying the Bold Reports Report Server with Docker on an Ubuntu operating system. The deployment process will be executed through the GitBash terminal. Let’s proceed with the deployment and explore the powerful functionality of the Bold Reports Report Server.

**Step 1: Prepare the environment**
a. Create a folder with the name “boldreports” and move it into the created folder using Linux commands

b. Download the docker_compose.yml file from GitHub using the provided command. This command will save the file to its current location.

![content=Seamless Report Server Deployment with Docker: Learn the step-by-step process, add optional libraries, and install PhantomJS for data visualization exports](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wyj1b848zxsxkduxts2u.png)

c. Download the default.conf file. You can achieve this by running the following command.

`sudo wget https://raw.githubusercontent.com/boldreports/bold-reports-docker/master/deploy/multiple-container/default.conf`
I have included the GitHub link in the description below.

To update the deployment information in the docker_compose.yaml file, open it using the Vim editor. Locate the “APP_BASE_URL” value under the environment section and modify it with the desired IP address and port number. Feel free to choose any available open port for this purpose.

For this blog, we are using the Public IP address along with the port number.
`http://<ipaddress/domain_name>:<port_number>`

If you intend to utilize third-party data sources such as MySQL, Oracle, or PostgreSQL for your reports, they need to be installed while deploying the Report Server. To accomplish this, uncomment the INSTALL_OPTIONAL_LIBS line.

![seamless Report Server Deployment with Docker: Learn the step-by-step process, add optional libraries, and install PhantomJS for data visualization exports](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9swvujth0udvy9ck5xid.png)

To configure the reverse proxy, ensure that you replace the <default_conf_path> with the default.config file path. If the configuration file is available in the current folder, then mention it in the following.
`./default.conf`

Additionally, it is important to use the same port number as the one specified in the APP_BASE_URL.

![seamless Report Server Deployment with Docker: Learn the step-by-step process, add optional libraries, and install PhantomJS for data visualization exports](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ncoer1br6p8s84fiqyjd.png)

In order to ensure a secure connection when hosting the Report Server within a domain, it is important to configure SSL information. By default, the application will be hosted in non-SSL mode. To configure SSL in the docker-compose.yml file, specifically in the reverse proxy section, certain steps need to be taken:

a. Uncomment “<ssl_cert_file_path>” and “<ssl_key_file_path>” in the volumes section and provide the file paths for the SSL certificate and key.
b. Comment out the line “8085:80” and uncomment “443:443” in the port section.

![seamless Report Server Deployment with Docker: Learn the step-by-step process, add optional libraries, and install PhantomJS for data visualization exports](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1eu9fmhqjlnamnzy1btp.png)

**Step 2: Build and run Docker**
Create the Docker image using the **docker-compose** command with YAML configuration files and run the following command.
`docker-compose up -d`

This command runs in detached mode, meaning it fetches the required Docker images and starts both the Bold Reports and database containers. Once the containers are started, the application will begin its startup process. To check the status of each container, use the following command.
`docker-compose ps`
Upon running this command, you will see that all the images are running.

![seamless Report Server Deployment with Docker: Learn the step-by-step process, add optional libraries, and install PhantomJS for data visualization exports](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gtm7zmtaj9vgwj4lwhcc.png)

To access the Report Server application, simply enter the APP_BASE_URL value in your web browser. It will open the application startup page.

![seamless Report Server Deployment with Docker: Learn the step-by-step process, add optional libraries, and install PhantomJS for data visualization exports](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/18h7sacl0nhmy2954bmg.png)

**Configure the Report Server**

To get started, let’s activate your Bold Reports account. You can do this by using your online credentials or uploading the online unlock key. You can download the unlock key from your Bold Reports Account page and upload it.

![seamless Report Server Deployment with Docker: Learn the step-by-step process, add optional libraries, and install PhantomJS for data visualization exports](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/52ye0j5j4uf3pcgqi3y2.png)

For this demo, activate the account using online credentials:
1. Click Log in to Activate and enter your Bold Reports credentials.
2. If you have multiple portal licenses, you’ll be prompted to select one.
3. Configure the user information.
4. Click Next.

![seamless Report Server Deployment with Docker: Learn the step-by-step process, add optional libraries, and install PhantomJS for data visualization exports](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w7cd67j6qte95l7wchm5.png)

**Configure the database for storing Report Server data**
1. You have the option to choose between SQL Server, PostgreSQL, or MySQL databases. For this setup, choose PostgreSQL. The fields will be updated accordingly.

![seamless Report Server Deployment with Docker: Learn the step-by-step process, add optional libraries, and install PhantomJS for data visualization exports](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8zwll99aw2orb3tw0qgz.png)

2. You can either create a new database or use an existing one on the selected server type. In this case, select New Database and enter the name “boldservicesdocker.” Click Next.

The report tenant deployment has started and will run in the background.

![seamless Report Server Deployment with Docker: Learn the step-by-step process, add optional libraries, and install PhantomJS for data visualization exports](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/976xu4zhvbmjlxk0amp9.png)

3. Click Go to Reports and you’ll be redirected to the View All page.

![seamless Report Server Deployment with Docker: Learn the step-by-step process, add optional libraries, and install PhantomJS for data visualization exports](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5i5g8c40kgr37isfko7g.png)

Here, you can explore the available sample reports by clicking Explore in the Report Sample pop-up. By clicking Add Report, you can add these sample reports to the Report Server under the Sample Reports category. If you click on a report, it will open in the Report Server.

**Add client libraries**
The Bold Reports Report Server doesn’t allow exporting visualization items like charts and gauges. However, if you want to enable exporting data visualization report items when scheduling reports, you can install the PhantomJS client library in your Report Server. PhantomJS is a scriptable, headless webkit that works with JavaScript.
Let’s see how to install it.

1. First, initiate the process of bashing the pods. To accomplish this, run the following command in order to retrieve the list of containers currently available.
`docket ps`
2. Open the CLI of id_web_container by running this command
`docker exec -it   /bin/bash`
Here, 94bfe0ffi8di is the container ID for id_we_container

![seamless Report Server Deployment with Docker: Learn the step-by-step process, add optional libraries, and install PhantomJS for data visualization exports](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m0o3x6oxckx2tmu0xc6i.png)
3. Navigate to the optional library folder.
`cd /application/app_data/optional-libs`
4. Next, install sudo and wget.
`apt-get install sudo apt-get install wget`

5. Install some required packages before installing PhantomJS by running the following command
`sudo apt-get install build-essential chrpath libssl-dev libxft-dev libfreetype6-dev libfreetype6 libfontconfig1-dev libfontconfig1 -y`

6.Download the latest stable version of PhantomJS from the official website with the next command.
`sudo wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2`
7. Once the download is complete, extract the downloaded archive file to the desired system location.
`sudo tar xvjf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/share/`
The file will be extracted and moved to the /use/local/share directory.
8. Create a symlink of the PhantomJS binary file in the system’s bin directory.
`sudo ln -s /usr/local/share/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin/`
9. Verify whether PhantomJS is installed properly by running the next command.
`phantomjs --version`

If it displays the version number, then PhantomJS is installed correctly.
Now, you can reload the browser and export a report that contains charts. When you open the exported file, you will see that the charts are exported as well.

**Conclusion**
In this blog post, we had a basic introduction to the Report Server, the deployment process on Docker, and the addition of optional client libraries. We also installed PhantomJS in the deployed application to enable the export of data visualization report items when scheduling. If you found this blog post helpful, please consider sharing it with others who might benefit from it. We appreciate your support.

If you have any questions or need further assistance, please feel free to post in the comments section below. Alternatively, you can reach out to us through our contact page. If you already have an account, you can log in to ask your support question directly.
Bold Reports offers a 15-day free trial with no credit card required. We invite you to start a free trial and experience Bold Reports first-hand. We value your feedback, so please let us know what you think!

Stay updated with the latest announcements about upcoming releases by following our official Twitter, Facebook, and LinkedIn pages. We’ll keep you informed about all the exciting developments in Bold Reports.
Thank you for reading, and we look forward to serving you with more informative content in the future.