PrizmDoc Viewer v13.11 Release - Updated
Using Docker
Administrator Guide > Install PAS > Using Docker

Using Docker

This section explains how to deploy a PAS instance using the official PAS docker image, available on Docker Hub as accusoft/prizmdoc-application-services.

Note that PAS requires a connection to PrizmDoc Server. For the rest of this section, we assume that you already have a PrizmDoc Server instance or tier deployed. If that's not the case, you might be interested in our Minimal Backend Quick Start which explains how you can quickly deploy a single instance of PAS and PrizmDoc Server together.

Requirements

To run PAS as a Docker container, you simply need a Docker host (a machine with Docker installed). See the Docker documentation for more information.

1. Create a PAS config file

Before you can run PAS, you'll need a config file. We've included a special init-config command in our Docker image which you can use to create an initial config file.

Windows (PowerShell)

First, make sure you've created a config directory on your host file system. This will be the directory where your new config file will be created:

mkdir config

Then, use the Docker image's init-config command to create a new PAS config file:

docker run --rm -e ACCEPT_EULA=YES --volume $pwd/config:/config accusoft/prizmdoc-application-services init-config

This will create a new PAS config file on your Windows host filesystem at .\config\pcc.nix.yml.

Linux (bash)

Use the Docker image's init-config command to create a new PAS config file:

docker run --rm -e ACCEPT_EULA=YES --volume $(pwd)/config:/config accusoft/prizmdoc-application-services init-config

This will create a new PAS config file on your host filesystem at ./config/pcc.nix.yml.

2. Customize your PAS config file

You will need to customize the contents of the pcc.nix.yml file for your PAS deployment.

NOTE: On a Linux system, because the config file was created by a Docker container, you will need to either edit the config file as root or change the owner of the file before editing it.

Typically, you need to:

For more information, see PAS Configuration.

3. Start PAS

Assuming you have configured PAS to run on port 3000 and use ./config, ./logs, and ./data directories, you can start PAS like so:

Windows (PowerShell)

First, create directories for logs and data:

mkdir logs
mkdir data

Then, start a pas container:

docker run --rm --env ACCEPT_EULA=YES --publish 3000:3000 --volume $pwd/config:/config --volume $pwd/logs:/logs --volume $pwd/data:/data --name pas accusoft/prizmdoc-application-services

Linux (bash)

Start a pas container like so:

docker run --rm --env ACCEPT_EULA=YES --publish 3000:3000 --volume $(pwd)/config:/config --volume $(pwd)/logs:/logs --volume $(pwd)/data:/data --name pas accusoft/prizmdoc-application-services

In the examples above:

If you want to start the Docker container in the background, add the -d option to docker run to run the container in disconnected mode.

4. Check PAS health

After starting PAS, GET http://localhost:3000/health should return HTTP 200, indicating PAS is healthy. If you visit this URL in a browser, you should see "OK" in the body of the page.

Windows (PowerShell)

Invoke-WebRequest -Uri http://localhost:3000/health

Should output something like:

StatusCode        : 200
StatusDescription : OK
Content           : {79, 75}
RawContent        : HTTP/1.1 200 OK
                    Connection: keep-alive
                    Content-Length: 2
                    Date: Thu, 21 Nov 2019 17:49:35 GMT

                    OK
Headers           : {[Connection, keep-alive], [Content-Length, 2], [Date, Thu, 21 Nov 2019 17:49:35
                    GMT]}
RawContentLength  : 2

Linux (bash)

curl -i http://localhost:3000/health

Should output something like:

HTTP/1.1 200 OK
Date: Wed, 20 Nov 2019 20:00:39 GMT
Connection: keep-alive
Content-Length: 2

OK

5. Check PAS's connection to PrizmDoc Server

After starting PAS, GET http://localhost:3000/servicesConnection should return HTTP 200, indicating PAS is configured correctly to make requests to PrizmDoc Server. If you visit this URL in a browser, you should see "OK" in the body of the page.

Windows (PowerShell)

Invoke-WebRequest -Uri http://localhost:3000/servicesConnection

Should output something like:

StatusCode        : 200
StatusDescription : OK
Content           : {79, 75}
RawContent        : HTTP/1.1 200 OK
                    Connection: keep-alive
                    Content-Length: 2
                    Date: Thu, 21 Nov 2019 17:50:11 GMT

                    OK
Headers           : {[Connection, keep-alive], [Content-Length, 2], [Date, Thu, 21 Nov 2019 17:50:11
                    GMT]}
RawContentLength  : 2

Linux (bash)

curl -i http://localhost:3000/servicesConnection

Should output something like:

HTTP/1.1 200 OK
Date: Wed, 20 Nov 2019 20:00:39 GMT
Connection: keep-alive
Content-Length: 2

OK

5. Stopping the container

You can stop your named container with:

docker stop pas