Ping Identity DevOps Docker Image - pingcentral
This docker image includes the Ping Identity PingCentral product binaries and associated hook scripts to create and run PingCentral in a container.
Related Docker Images
-
pingidentity/pingbase-java- Parent Image
Environment Variables
The following environment ENV variables can be used with this image.
| ENV Variable | Default | Description |
|---|---|---|
BASE |
${BASE:-/opt} |
|
JAVA_HOME |
/opt/java |
|
STAGING_DIR |
${BASE}/staging |
Path to the staging area where the remote and local server profiles can be merged |
OUT_DIR |
${BASE}/out |
Path to the runtime volume |
SERVER_ROOT_DIR |
${OUT_DIR}/instance |
Path from which the runtime executes |
ROOT_USER |
administrator |
The default administrative user for PingData (v1 pingbase carrier default). Declared in its own ENV statement before the block below so ROOT_USER_DN expands at build time — Docker does not expand ENV values against vars declared later or in the same statement. |
IN_DIR |
${BASE}/in |
Location of a local server-profile volume |
SERVER_BITS_DIR |
${BASE}/server |
Path to the server bits |
BAK_DIR |
${BASE}/backup |
Path to a volume generically used to export or backup data |
LOGS_DIR |
${BASE}/logs |
Path to a volume generically used for logging |
STAGING_MANIFEST |
${BASE}/staging-manifest.txt |
Path to a manifest of files expected in the staging dir on first image startup |
CLEAN_STAGING_DIR |
false |
Whether to clean the staging dir when the container starts |
SECRETS_DIR |
/run/secrets |
Default path to the secrets |
TOPOLOGY_FILE |
${STAGING_DIR}/topology.json |
Path to the topology file |
HOOKS_DIR |
${STAGING_DIR}/hooks |
Path where all the hooks scripts are stored |
CONTAINER_ENV |
${STAGING_DIR}/.env |
Environment Property file use to share variables between scripts in container |
SERVER_PROFILE_DIR |
/tmp/server-profile |
Path where the remote server profile is checked out or cloned before being staged prior to being applied on the runtime |
SERVER_PROFILE_URL |
A valid git HTTPS URL (not ssh) |
|
SERVER_PROFILE_URL_REDACT |
true |
When set to "true", the server profile git URL will not be printed to container output. |
SERVER_PROFILE_BRANCH |
A valid git branch (optional) |
|
SERVER_PROFILE_PATH |
The subdirectory in the git repo |
|
SERVER_PROFILE_UPDATE |
false |
Whether to update the server profile upon container restart |
SECURITY_CHECKS_STRICT |
false |
Requires strict checks on security |
SECURITY_CHECKS_FILENAME |
*.jwk *.pin |
Perform a check for filenames that may violate security (i.e. secret material) |
UNSAFE_CONTINUE_ON_ERROR |
If this is set to true, then the container will provide a hard warning and continue. |
|
LICENSE_DIR |
${SERVER_ROOT_DIR} |
License directory |
STARTUP_FOREGROUND_OPTS |
The command-line options to provide to the startup command when the container starts with the server in the foreground. This is the normal start flow for the container |
|
STARTUP_BACKGROUND_OPTS |
The command-line options to provide to the startup command when the container starts with the server in the background. This is the debug start flow for the container |
|
PING_IDENTITY_DEVOPS_KEY_REDACT |
true |
|
PING_IDENTITY_ACCEPT_EULA |
NO |
Legal requirement to explicitly accept the terms of the PingIdentity License Must be set to 'YES' for the container to start |
PING_IDENTITY_DEVOPS_FILE |
devops-secret |
File name for devops-creds passed as a Docker secret |
TAIL_LOG_FILES |
A whitespace separated list of log files to tail to the container standard output - DO NOT USE WILDCARDS like /path/to/logs/*.log |
|
COLORIZE_LOGS |
true |
If 'true', the output logs will be colorized with GREENs and REDs, otherwise, no colorization will be done. This is good for tools that monitor logs and colorization gets in the way. |
LOCATION |
Docker |
Location default value |
LOCATION_VALIDATION |
true |
Validation toggle for LOCATION: true to require any string denoting a logical/physical location, false to disable the check |
MAX_HEAP_SIZE |
384m |
Heap size (for java products) |
JVM_TUNING |
AGGRESSIVE |
|
JAVA_RAM_PERCENTAGE |
75.0 |
Percentage of the container memory to allocate to the JVM DO NOT set to 100% or your JVM will exit with OutOfMemory errors and the container will terminate |
VERBOSE |
false |
Triggers verbose messages in scripts using the set -x option. |
PING_DEBUG |
false |
Set the server in debug mode, with increased output |
PING_PRODUCT |
The name of Ping product, i.e. PingFederate, PingDirectory - must be a valid Ping product type. This variable should be overridden by child images. |
|
PING_PRODUCT_VALIDATION |
true |
Validation toggle for PING_PRODUCT: true to require a valid Ping product type (e.g. PingFederate,PingDirectory), false to disable the check |
LDAP_PORT |
1389 |
Port over which to communicate for LDAP |
LDAPS_PORT |
1636 |
Port over which to communicate for LDAPS |
HTTPS_PORT |
1443 |
Port over which to communicate for HTTPS |
JMX_PORT |
1689 |
Port for monitoring over JMX protocol |
ORCHESTRATION_TYPE |
The type of orchestration tool used to run the container, normally set in the deployment (.yaml) file. Expected values include: - compose - swarm - kubernetes Defaults to blank (i.e. No type is set) |
|
USER_BASE_DN |
dc=example,dc=com |
Base DN for user data |
DOLLAR |
'$' |
Variable with a literal value of '$', to avoid unwanted variable substitution |
ROOT_USER_DN |
cn=${ROOT_USER} |
DN of the server root user |
ENV |
${BASE}/.profile |
|
PS1 |
\${PING_PRODUCT}:\h:\w\n> |
Default shell prompt (i.e. productName:hostname:workingDir) |
REGENERATE_JAVA_PROPERTIES |
false |
Whether to force a run of dsjavaproperties --initialize (false = only regenerate java.properties when the JVM or JVM options change) |
PATH |
${JAVA_HOME}/bin:${BASE}:${SERVER_ROOT_DIR}/bin:${PATH} |
PATH used by the container |
IMAGE_VERSION |
${IMAGE_VERSION} |
|
IMAGE_GIT_REV |
${IMAGE_GIT_REV} |
|
DATE |
${DATE} |
|
PING_PRODUCT_VERSION |
${VERSION} |
|
PING_CENTRAL_SERVER_PORT |
9022 |
|
PING_PRODUCT |
PingCentral |
Ping product name |
LICENSE_DIR |
${SERVER_ROOT_DIR}/conf |
License directory |
LICENSE_FILE_NAME |
pingcentral.lic |
Name of license file |
LICENSE_SHORT_NAME |
PC |
Short name used when retrieving license from License Server |
LICENSE_VERSION |
${LICENSE_VERSION} |
Version used when retrieving license from License Server |
STARTUP_COMMAND |
${SERVER_ROOT_DIR}/bin/run.sh |
The command that the entrypoint will execute in the foreground to instantiate the container |
TAIL_LOG_FILES |
${SERVER_ROOT_DIR}/log/application.log |
Files tailed once container has started |
PING_CENTRAL_LOG_LEVEL |
INFO |
|
PING_CENTRAL_BLIND_TRUST |
false |
|
PING_CENTRAL_VERIFY_HOSTNAME |
true |
Ports Exposed
The following ports are exposed from the container. If a variable is used, then it may come from a parent container
-
9022
Running a PingCentral container
To run a PingCentral container with your devops configuration file:
docker run -Pt \
--name pingcentral \
--env-file ~/.pingidentity/config \
--env PING_IDENTITY_ACCEPT_EULA=YES \
--env PING_IDENTITY_DEVOPS_USER \
--env PING_IDENTITY_DEVOPS_KEY \
--tmpfs /run/secrets \
pingidentity/pingcentral:edge
or with long options in the background:
docker run \
--name pingcentral \
--publish 9022:9022 \
--detach \
--env-file ~/.pingidentity/config \
--env PING_IDENTITY_ACCEPT_EULA=YES \
--env PING_IDENTITY_DEVOPS_USER \
--env PING_IDENTITY_DEVOPS_KEY \
--tmpfs /run/secrets \
pingidentity/pingcentral:edge
or if you want to specify everything yourself:
docker run \
--name pingcentral \
--publish 9022:9022 \
--detach \
--env PING_IDENTITY_ACCEPT_EULA=YES \
--env PING_IDENTITY_DEVOPS_USER \
--env PING_IDENTITY_DEVOPS_KEY \
--tmpfs /run/secrets \
pingidentity/pingcentral:edge
Follow Docker logs with:
docker logs -f pingcentral
If using the command above with the embedded server profile, log in with:
-
https://localhost:9022/
-
Username: Administrator
-
Password: 2Federate
Docker Container Hook Scripts
Please go here for details on all pingcentral hook scripts
This document is auto-generated from pingcentral/Dockerfile
Copyright © 2026 Ping Identity Corporation