Deploying Web Author in a Docker Container
It is a common practice to use Docker containers to deploy Oxygen XML Web Author. This topic contains some advice on how to create a custom Docker image.
FROM tomcat:9.0.65-jre11-temurin-focal # If behind a proxy, make sure you configure Docker # https://docs.docker.com/network/proxy/ # Make sure to update and also install wget RUN apt-get update && apt-get -y install wget # Now download the web author war RUN wget https://www.oxygenxml.com/InstData/WebAuthor/war/oxygenxml-web-author.war RUN mv oxygenxml-web-author.war /usr/local/tomcat/webapps/ # Expose the Tomcat port EXPOSE 8080 # Expose the logs VOLUME /usr/local/tomcat/logs/ VOLUME /usr/local/tomcat/work/Catalina/localhost/oxygenxml-web-authorTo build the Docker image, use:
docker build -t web-author .
docker volume create web-author-logs docker volume create web-author-data
docker run -p 8080:8080 --mount source=web-author-data,target=/usr/local/tomcat/work/Catalina/localhost/oxygenxml-web-author --mount source=web-author-logs,target=/usr/local/tomcat/logs web-author
HTTP Configuration
The HTTP/HTTPS ports of the container must be exposed.
One of the benefits of using Docker containers is that you can deploy multiple instances of Oxygen XML Web Author to provide high availability. In this case, you may want to consult our documentation about running Oxygen XML Web Author behind a load balancer.
Configuration
The server configuration that can be changed using the administration page is stored in the Data Directory. If you want to persist some of this configuration when containers are removed, you can map parts of this directory it to a volume.
Alternatively, you can add the initial configuration of the server as part of the file system of the Docker image.
Licensing
The license server has some protections built in to prevent users from duplicating a deployment with the same license. As a result, deploying the license server in a Docker container is not supported.
Logging
Oxygen XML Web Author is configured to log to both standard output and to a file so that you are able to use the standard Docker commands to obtain the logs.