Docker Instructions
The information below describes how to build a Docker container to run the MFT Server application and provides information regarding Redwood's support policy.
JSCAPE Docker Support Policy
-
JSCAPE provides limited support for its products running in Docker containers.
-
We support functional issues within the JSCAPE container itself.
-
We do not support issues related to the container orchestration environment (e.g., Kubernetes, Docker Swarm). This includes:
-
Orchestration platform configuration and management.
-
Container scheduling and networking.
-
-
You are responsible for configuring and maintaining the container orchestration environment.
-
We provide sample configurations as a starting point, but they are not part of the core JSCAPE product.
For support with JSCAPE-specific issues within a container, contact our support team with details of the problem and the Docker image used.
Prerequisites
-
A Windows or Linux MFT Server installer, downloaded from the JSCAPE website
-
A Docker installation that you are logged in to

-
Create a folder on the target system, for example: "C:\docker".
-
Copy all the files from
<MFT Server Installation directory>\doc\docker
to “C:\docker”. The default MFT Server installation folder is Program Files\MFT Server. -
Place the MFT Server Windows installer in “C:\docker”.
-
Place the MFT Server license file in “C:\docker”.
Docker builds images by reading the instructions from a Dockerfile. This text file contains instructions that adhere to a specific format needed to assemble your application into a container image. The default file name is Dockerfile
, without a file extension. Using the default name allows you to run the docker build command without specifying additional command flags.
Modify Dockerfile
-
Update the name of the installation file.
-
Go to the comment that states:
# Unpack MFT Server files to your target image (/opt/mft_server)
. -
Under this comment, you will see the following command:
COPY mft-server-install-unix-@VERSION@.zip mft-server.zip
. -
Change the source file name
mft-server-install-unix-@VERSION@.zip
to match the name of the installer you downloaded.
Example: COPYmft-server-install-x64-2024.3.0.511.exe
mft-server.zip -
-
Update the target location of your MFT Server license file.
-
Go to the comment that states:
# Copy the license file
. -
Under this comment, you will see the following line:
# COPY license.lic /opt/mft_server/etc/
. -
Remove the comment indicator (#) from the command.
-
Change the target license location to \Program Files\MFT Server\etc.
The new command is:
COPY license.lic \Program Files\MFT Server\etc
-
-
Next, one of the files copied to your docker folder on the target system is
run.sh
. Dockerfile runs the run.sh script. The run.sh script performs various tasks, two of which require you to create the environment variables - in the Dockerfile.-
First, run.sh contains the information to configure an existing MFT Server relational database. You must create the database before building the Docker image. See System requirements for supported databases.
The database is configured using this line in run.sh:
./js-database-configuration -configure -url jdbc:mysql://${RDS_ENDPOINT}:3306/${RDS_DB_NAME} -user ${RDS_CUSTOMER_DB_USERNAME} -password ${RDS_CUSTOMER_DB_PASSWORD}
. The ${VARNAME} syntax references four environment variables you must add to the Dockerfile (currently do not exist). They are described below.
-
RDS_ENDPOINT — The system where the MFT Server database resid
RDS_DB_NAME — The MFT Server database name
RDS_CUSTOMER_DB_USERNAME — The user that has rights to the MFT Server database
RDS_CUSTOMER_DB_PASSWORD — The password of the user
For example, to set the database name, enter:
ENV RDS_DB_NAME=mftserverdb
. Configure the remaining variables using this format.
Second, run.sh configures an administrative user and password. This is the username and password used to log in to the MFT Server Admin console to manage the MFT Server environment (create users, trading partners, services, etc.).
The admin account is created using this line in run.sh:
./js-addadmin -db -username ${APP_MANAGEMENT_USERNAME} -password ${APP_MANAGEMENT_PASSWORD} -sa
. The ${VARNAME} syntax references two environment variables you must add to the Dockerfile (currently they do not exist).
APP_MANAGEMENT_USERNAME — The administrative user account name
APP_MANAGEMENT_PASSWORD — The administrative user account password
Example: To set the admin account name, enterENV APP_MANAGEMENT_USERNAME=Admin
. Set the password variable using this format.
Third, you can optionally set the Java virtual memory on the container host, which is also something done when run.sh is executed. The run.sh script calls another script,
set-server-jvm-memory.sh
. In run.sh, you will see this line:./set-server-jvm-memory.sh --memory ${JVM_MEMORY}
that calls the script to set the Java virtual memory.
To set the memory, add an environment variable JVM_MEMORY to the Dockerfile. For example,
ENV JVM_MEMORY=8192
(where the number is specified in megabytes).
I f JVM_MEMORY is not added to the Dockerfile, the default memory is allocated. However, the memory can be adjusted after the MFT Server container is built.
Build and Start the Container
Open a Command Prompt or PowerShell window and navigate to the in “C:\docker” directory where the docker files were placed. Build the container image using the docker build command.
docker build -t jscape:latest .
Note: The -t jscape:latest option specifies the name (required) and tag (optional) of the image you are building. The dot "." specifies the build context as the current directory. This example is where the build expects to find the Dockerfile and the local files the Dockerfile needs to access.
Start your container using the docker run command, and specify the name of the image you just created.
docker run -it -p 11880:11880 --entrypoint=cmd jscape:latest
Note: Windows requires the host OS version to match the container OS version. Confirm that you have an equivalent host build if you want to run a container based on a newer Windows build. Otherwise, use Hyper-V isolation to run older containers on new host builds.

-
Unpack mft-server files (/home/user/mft_server) from the previously downloaded installation kit.
-
Navigate to the /home/user/mft_server/doc/docker directory. Copy all the files in this directory to the /home/user directory on the target system.
-
Place the MFT Server Non-Windows installer in the /home/user directory.
-
Place the MFT Server license file in /home/user directory.
Docker builds images by reading the instructions from a Dockerfile. This text file contains instructions that adhere to a specific format needed to assemble your application into a container image. The default file name is Dockerfile
, without a file extension. Using the default name allows you to run the docker build command without specifying additional command flags.
Modify Dockerfile
-
Update the name of the installation file.
-
Go to the comment that states:
# Unpack MFT Server files to your target image (/opt/mft_server)
. -
Under this comment, you will see the following command:
COPY mft-server-install-unix-@VERSION@.zip mft-server.zip
. -
Change the source file name
mft-server-install-unix-@VERSION@.zip
to match the name of the installer you downloaded.
Example: COPYmft-server-install-unix-2024.3.1.512.zip
mft-server.zip -
-
Update the target location of your MFT Server license file.
-
Go to the comment that states:
# Copy the license file
. -
Under the above-stated comment, you will see the following line:
# COPY license.lic /opt/mft_server/etc/
. -
Remove the comment indicator (#) from the command above the COPY command.
-
-
Next, one of the files copied to the /home/user directory on the target system is
run.sh
. Dockerfile runs the run.sh script. The run.sh script performs various tasks, two of which require you to create the environment variables — in the Dockerfile.-
First, run.sh contains the information to configure an existing MFT Server relational database. Your organization must create the databasebefore building the Docker image. See System requirements for supported databases.
The database is configured using this line in run.sh:
./js-database-configuration -configure -url jdbc:mysql://${RDS_ENDPOINT}:3306/${RDS_DB_NAME} -user ${RDS_CUSTOMER_DB_USERNAME} -password ${RDS_CUSTOMER_DB_PASSWORD}
. The ${VARNAME} syntax references four environment variables you must add to the Dockerfile (currently do not exist). They are described below.
-
RDS_ENDPOINT — The system where the MFT Server database resides
RDS_DB_NAME — The MFT Server database name
RDS_CUSTOMER_DB_USERNAME — The user that has rights to the MFT Server database
RDS_CUSTOMER_DB_PASSWORD — The password of the user
For example, to set the database name, enter
ENV RDS_DB_NAME=mftserverdb
. Configure the remaining variables using this format.
Second, run.sh configures an administrative user and password. This is the username and password used to log in to the MFT Server Admin console to manage the MFT Server environment (create users, trading partners, services, etc.).
The admin account is created using this line in run.sh:
./js-addadmin -db -username ${APP_MANAGEMENT_USERNAME} -password ${APP_MANAGEMENT_PASSWORD} -sa
. The ${VARNAME} syntax references two environment variables you must add to the Dockerfile ( currently do not exist).
APP_MANAGEMENT_USERNAME — The administrative user account name
APP_MANAGEMENT_PASSWORD — The administrative user account password
For example, to set the admin account name, enter
ENV APP_MANAGEMENT_USERNAME=Admin
. Set the password variable using this format.
Third, you can optionally set the Java virtual memory on the container host, which is also something done when run.sh is executed. The run.sh script calls another script,
set-server-jvm-memory.sh
. In run.sh, you will see this line:./set-server-jvm-memory.sh --memory ${JVM_MEMORY}
that calls the script to set the Java virtual memory.
To set the memory, add an environment variable JVM_MEMORY to the Dockerfile.
Example:ENV JVM_MEMORY=8192
(where the number is specified in megabytes).
If JVM_MEMORY is not added to the Dockerfile, the default memory is allocated. However, the memory can be adjusted after the MFT Server container is built.
Build and Start the Container
Open a terminal and go to the /home/user directory where the docker files were placed. Build the container image using the docker build command:
docker build -t jscape:latest .
Note: The -t jscape:latest option specifies the name (required) and tag (optional) of the image you are building. The dot "." specifies the build context as the current directory. This example is where the build expects to find the Dockerfile and the local files the Dockerfile needs to access.
Start your container using the docker run command and specify the image name you just created.
docker run -it -p 11880:11880 jscape:latest