Containerized Python service
Spotfire Service for Python on Linux is configured to use a Docker® container by default.
- If you have not yet installed the Spotfire Service for Python, install Docker first, and then install the Spotfire Service for Python.
- If you have already installed the Spotfire Service for Python before installing Docker, then stop the Spotfire Service for Python, install Docker, set the configuration to use Docker, and then restart the Spotfire Service for Python.
Containerized Spotfire Service for Python operates the Python engine in a "sandbox", so the Python engine does not have access to the host file system. Because containerized Spotfire Service for Python prevents the Python engine from accessing the host system, it can execute Spotfire data functions if the data function is from a trusted source. (For more information about script and data function trust, see the TIBCO Spotfire Analyst User's Guide). Running the Spotfire Service for Python in a container results in negligible performance impact. If the data function is running in a container and attempts to access the file system or other host resource, the data function will fail.
The only container framework with which we developed and tested the Spotfire Service for Python is Docker. We do not provide Docker with the base installation; however, you must have Docker installed for the Spotfire Service for Python to work properly out of the box. The service downloads and builds a default Docker image based on CentOS 7 from Docker Hub. While you cannot modify the image we provide, you can build and use a different Docker image if you have different configuration requirements. This section contains a few examples of specifying different Docker images. Alternatively, check Docker Hub for an image that might work for you.
You can export and change the configuration options to build and install a customized image. See Configuring Spotfire Service for Python for more information. The property to change in the configuration is startup.hook.script.
After you install and configure both the container and the Spotfire Service for Python, you can start the service. When the service starts, containers are created as needed.
- Configuring a custom Docker image on a node with internet access
If you have access to the internet, then you can build a Docker image for your Spotfire Service for Python, referencing it by its name and tag. - Configuring a custom Docker image on a node with no internet access
If your node manager does not have external access to the internet, then you can create a Docker image on an internet-enabled computer, and then transfer it to your node manager. - Configuring a custom startup script to build a custom Docker image
You can provide a startup script that is installed and configured on your Spotfire Server to build a custom Docker image for your Spotfire Service for Python. - Pulling a custom docker image from an authenticated repository
You can create a custom start script to configure Spotfire Service for Python to log in to a remote authenticated repository and pull a custom Docker image.