
The Payara Monthly Catch -September 2025
Welcome aboard the September issue of The Monthly Catch! With summer holidays wrapping up, the Java world is back […]
A year ago, we brought you our first Docker images. Today, we have updated them with a few changes and refinements.
For those already familiar with Docker, here are the key points
The main thing to change was the base image. Initially we were using Ubuntu but, since the 14.04 LTS edition does not have Java 8 in its package repositories, we had to use a non-LTS version to be on the latest JDK (16.04 LTS was, obviously, unavailable at the time). The new images are built from the official JDK Docker images, meaning that each (new) build will use the latest update of Java without our input.
The JDK images are provided on a Debian base and an Alpine Linux base. Both Payara Server images (full and web profile) use the Debian edition so, if you wanted to build an image on top of them, you have got access to all the Debian repositories and Bash.
The Payara Micro images use the Alpine Linux edition; the main driver for this being size. Payara Micro is a micro Java EE platform for microservices. A 1.284GB Docker image is not what I would call Micro! Reducing that size by over 1GB is a very valuable saving:
The other thing to note is that the admin user in the Payara Server images now has a default password of “admin”. We have made the change in an open way so that you can copy this method to change the password to something more secure yourself in your own Dockerfile. For development purposes, it can be left as-is.
Our expectation in providing these images is that they will be used either with your own Dockerfiles as part of your CI process or through a tool like Docker Compose like I have with my docker-compose demo repository:
version: '2'
services:
micro1:
image: payara/micro:162
ports:
- "1080:8080"
volumes:
- ./payara-micro/deployments:/opt/payara/deployments
entrypoint:
- java
- -jar
- /opt/payara/payara-micro.jar
- --deploymentDir
- /opt/payara/deployments
payara-full:
build: ./payara-server-full
ports:
- "2080:8080"
entrypoint:
- /opt/payara41/bin/asadmin
- start-domain
- -v
This example would start Payara Micro and Payara Server (full profile); the Payara Micro container will deploy whatever resource is in the ./payara-micro/deployments
folder.
You’ll notice that the “micro1” container starts by pulling directly from Docker Hub. The “payara-full” container starts by first building a new image from the directory which contains the following Dockerfile:
FROM payara/server-full:162
RUN /opt/payara41/bin/asadmin start-domain &&
/opt/payara41/bin/asadmin --user admin --passwordfile=/opt/pwdfile set-hazelcast-configuration --enabled=true --dynamic=true
COPY rest-jcache.war /opt/payara41/glassfish/domains/domain1/autodeploy
Here, the WAR file to be deployed is copied over in creating the new layer. It is important to make sure to enable Hazelcast by using the asadmin subcommand set-hazelcast-configuration
and to add --dynamic=true
so that the change takes place immediately.
If I wanted Payara Server to be started when I run the container, I would add an ENTRYPOINT
in to the Dockerfile, or supply it as an argument to my docker run
command.
Share:
Welcome aboard the September issue of The Monthly Catch! With summer holidays wrapping up, the Java world is back […]
We’re excited to announce that Payara Platform Community 7 Beta application server is now fully certified as Jakarta EE 11 […]
Welcome aboard the August 2025 issue of The Payara Monthly Catch! With summer in full swing, things may have felt […]
Have you considered using Oracle’s Server JRE?
Hi Bruno,
I have to update to Payara 5 in Docker. Are you able to give a rough estimation on how much effort this is or is it depending on other factors? Thanks..