Parasoft SOAtest & Virtualize Server
10K+
Maintained by: Parasoft
Where to get help: Parasoft Documentation, Parasoft Forums, or Parasoft Support and Technical Services
Parasoft SOAtest & Virtualize Server is a lightweight server that hosts service virtualization assets created in the Parasoft Virtualize desktop and Parasoft Continuous Testing Platform (CTP), as well as execute tests created in the Parasoft SOAtest desktop or CTP. The server architecture is designed to provide a smaller memory footprint for higher performance of individual servers, as well as to let organizations take advantage of standardized application deployment infrastructures for availability, clustering, and scalability.
Note: You must accept the Parasoft End User License Agreement (EULA) to use this product. Change ACCEPT_EULA from false to true in the below examples.
To run the image:
$ docker run -d -p 9080:9080 -p 9443:9443 --env ACCEPT_EULA=false --name soavirt-server parasoft/soavirt-server
To publish the container using non-default ports, additional environment variables must be set so that soavirt-server is aware of its external endpoints:
$ docker run -d -p 7070:7070 -p 7443:7443 --env HTTP_PORT=7070 --env HTTP_PORT=7443 --env ACCEPT_EULA=false --name soavirt-server parasoft/soavirt-server
This command runs the soavirt-server on non-default ports for HTTP. The environment variables are used to update configurations at the time of running the docker container so that soavirt-server will be available on the configured ports. It is important for connectivity between Parasoft products that the environment variables be set so that ports are consistent between external and internal connections.
To run with SSL, the server.xml in the soavirt-server base [/usr/local/parasoft/soavirt/conf/server.xml] must be configured to set up a secure connector. The secure connector should be set to use port 9443, which can be remapped by the environment variables when executing the docker run command based on the value passed in the HTTPS_PORT environment variable.
$ docker run -d -p 9080:9080 -p 9443:9443 --env HTTP_PORT=9080 --env HTTPS_PORT=9443 --env ACCEPT_EULA=false --name soavirt-server parasoft/soavirt-server
If you are using the legacy ActiveMQ provider to monitor server events, you will also need to set the EVENTS_PORT and STATISTICS_PORT environment variables. For example:
-p 9617:9617 -p 9618:9618 --env EVENTS_PORT=9617 --env STATISTICS_PORT=9618
Docker Desktop is not supported. If you run the Parasoft SOAtest and Virtualize Server container in Docker Desktop, the Parasoft machineId will be 0.
Upgrading docker may result in the Parasoft machineId changing.
When running on Docker hosts with more than 32 CPU cores the product will print the following in the logs
This machine exceeds the licensed number of CPU cores
To reduce the number of cores available, add this to the docker run command, where 0-3 is the number of cores to limit the image to
--cpuset-cpus 0-3
Alternatively, contact Parasoft to enable running on higher core counts.
A license may be set by adding the necessary properties to the config.properties file and building a new image, mounting it to the container, or passing the config.properties directly as environment variables.
If you want to mount the config.properties file to the container, add this to your docker run command:
Linux:
-v "${PWD}/config.properties:/usr/local/parasoft/soavirt/webapps/ROOT/WEB-INF/config.properties"
Windows:
-v "%CD%/config.properties:/usr/local/parasoft/soavirt/webapps/ROOT/WEB-INF/config.properties"
If you want to encrypt a password before adding it to the config.properties file or the REST API payload, you can run this command:
docker run --entrypoint /bin/sh soavirt-server /usr/local/parasoft/soavirt/webapps/ROOT/scripts/encodepass.sh <YOUR_PASSWORD>
If running in Docker Engine, here is an example that sets the license using the REST API:
curl -X PUT "http://localhost:9080/soavirt/api/v6/preferences/config" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"eula\":{\"accepted\":false},\"license\":{\"licenseServer\":{\"host\":\"<LICENSE_SERVER_HOST>\",\"port\":<LICENSE_SERVER_PORT>,\"useSpecifiedServer\":true,\"authEnabled\":true,\"username\":\"<LICENSE_SERVER_USERNAME>\",\"password\":\"<LICENSE_SERVER_PASSWORD>\"},\"virtualize\":{\"enabled\":true,\"useNetwork\":true,\"network\":{\"edition\":\"custom_edition\",\"customFeatures\":[\"Service Enabled\",\"Performance\",\"Extension Pack\",\"Validate\",\"Message Packs\",\"Unlimited Hits/Day\"]}},\"soatest\":{\"enabled\":true,\"useNetwork\":true,\"network\":{\"edition\":\"custom_edition\",\"customFeatures\":[\"SOA\",\"Server API Enabled\"]}}}}"
If you want to pass the config.properties directly as environment variables, here is an example that passes the properties "virtualize.license.use_network=true" and "virtualize.license.network.edition=performance_server_edition" as environment variables in the docker run command:
--env virtualize.license.use_network=true --env virtualize.license.network.edition=performance_server_edition
This image can be customized by mounting files in the container or building a custom image.
Add a variable to your docker run command to point to your config.properties or server.xml file. This example mounts the config.properties file using default ports:
Linux:
$ docker run -d -v "${PWD}/config.properties:/usr/local/parasoft/soavirt/webapps/ROOT/WEB-INF/config.properties" -p 9080:9080 -p 9443:9443 -p 9617:9617 -p 9618:9618 --env ACCEPT_EULA=false --name soavirt-server parasoft/soavirt-server
Windows:
$ docker run -d -v "%CD%/config.properties:/usr/local/parasoft/soavirt/webapps/ROOT/WEB-INF/config.properties" -p 9080:9080 -p 9443:9443 -p 9617:9617 -p 9618:9618 --env ACCEPT_EULA=false --name soavirt-server parasoft/soavirt-server
You can mount the server.xml file to the container the same way to apply SSL settings:
Linux:
$ docker run -d -v "${PWD}/server.xml:/usr/local/parasoft/soavirt/conf/server.xml" -p 9080:9080 -p 9443:9443 -p 9617:9617 -p 9618:9618 --env ACCEPT_EULA=false --name soavirt-server parasoft/soavirt-server
Windows:
$ docker run -d -v "%CD%/server.xml:/usr/local/parasoft/soavirt/conf/server.xml" -p 9080:9080 -p 9443:9443 -p 9617:9617 -p 9618:9618 --env ACCEPT_EULA=false --name soavirt-server parasoft/soavirt-server
Copy the config.properties file from the image:
$ docker run --rm --entrypoint cat parasoft/soavirt-server /usr/local/parasoft/soavirt/webapps/ROOT/WEB-INF/config.properties > config.properties
Dockerfile:
FROM parasoft/soavirt-server
COPY config.properties /usr/local/parasoft/soavirt/webapps
Docker build command:
$ docker build --no-cache --tag soavirt-custom-config
Copy the server.xml file from the image
$ docker run --rm --entrypoint cat parasoft/soavirt-server /usr/local/parasoft/soavirt/conf/server.xml > server.xml
Dockerfile:
FROM parasoft/soavirt-server
COPY config.properties /usr/local/parasoft/soavirt/webapps
COPY server.xml /usr/local/parasoft/soavirt/conf
COPY soavirt.keystore /usr/local/parasoft/soavirt/conf
Docker build command:
$ docker build --no-cache --tag soavirt-ssl
This image does not contain any web browsers. Google Chrome can be installed to support test scenarios that use Browser Playback tools.
Dockerfile:
FROM parasoft/soavirt-server
USER root:root
RUN rpm -ivh \
http://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/Packages/centos-gpg-keys-8-6.el8.noarch.rpm \
http://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/Packages/centos-stream-repos-8-6.el8.noarch.rpm && \
dnf install -y --nodocs --repo baseos --repo appstream \
liberation-fonts \
vulkan-loader \
xdg-utils && \
rpm -evh \
centos-stream-repos \
centos-gpg-keys && \
rpm --import https://dl.google.com/linux/linux_signing_key.pub && \
dnf install -y --nodocs \
https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm && \
dnf clean all && \
rm -rf /var/cache/dnf
USER parasoft:parasoft
Note: soavirt-server uses Red Hat UBI as its base image. Google Chrome requires a few extra dependencies that are not available in Red Hat UBI. The Dockerfile pulls in the missing dependencies from CentOS Stream.
Docker build command:
docker build --no-cache --tag soavirt-server-chrome .
By default, Google Chrome crashes when run in a Docker container. To prevent this from happening, certain Chrome arguments must be enabled, including the argument to enable headless browser playback. For SOAtest Browser Playback tools, these Chrome arguments can be configured by setting the java system property com.parasoft.browser.BrowserPropertyOptions.CHROME_ARGUMENTS to the value headless,disable-gpu,no-sandbox,disable-dev-shm-usage. This java system property can be set as follows:
docker run -d -p 9080:9080 -p 9443:9443 --env ACCEPT_EULA=false --env JAVA_OPTS=-Dcom.parasoft.browser.BrowserPropertyOptions.CHROME_ARGUMENTS=headless,disable-gpu,no-sandbox,disable-dev-shm-usage --name soavirt-server-chrome soavirt-server-chrome
You may want to use a modified java.security file if, for example, you want to enable or disable specific SSL cipher suites or make other related security configurations. To do so, create a modified copy of your java.security file and either mount it into your container at /usr/local/parasoft/java.security or build a new image that includes the customized file.
There are a few options you will want to keep in mind when applying your changes:
When using your modified java.security settings, it's important to disable the global properties. If you don't, they will override your modifications:
-Djava.security.disableSystemPropertiesFile=true
To override the default security file, explicitly specify that the JVM should use your custom security properties file:
-Djava.security.properties==/usr/local/parasoft/java.security
Note the double equal sign (==) that tells Java to fully replace the java.security settings that would normally be loaded from the jvm.
To debug which java.security properties were loaded, add the java.security.debug property:
-Djava.security.debug=properties
Put all together, you would add the following to the run command:
--env JAVA_OPTS="-Djava.security.disableSystemPropertiesFile=true -Djava.security.properties==/usr/local/parasoft/java.security -Djava.security.debug=properties"
You need to view and agree to the Parasoft End User License Agreement (EULA) for the software contained in this image.
As with all Docker images, these likely also contain other software which may be under other licenses. As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies with any relevant licenses for all software contained within.
Content type
Image
Digest
sha256:ff2e738ca…
Size
810.8 MB
Last updated
22 days ago
docker pull parasoft/soavirt-server