ZendHQ Docker image
We provide a ZendHQ container image suitable for use with Docker or Podman:
- cr.zend.com/zendhq
For a full list of available tags, including variants for ARM images, see our container registry cr.zend.com.
All ZendHQ container images can be configured via a combination of build arguments and /entrypoint.d/ scripts.
Build arguments
| Build Argument | Default | Purpose |
|---|---|---|
| OS_ID | One of "ubuntu", "debian", or "centos", based on image tag | Identifies the operating system |
| OS_VERSION | Based on image tag | Identifies the operating system version used in image |
| S6OVERLAY_VERSION | v2.2.0.3 | Identifies the version of the s6-overlay to use in the container; must be in the v2 series |
| ZENDHQ_TOKEN | zendphp | The token to use when authenticating with ZendHQ |
The entrypoint.d directory
You may place the following in the /entrypoint.d/ directory, to have the following effects:
zendhqd.ini: The file that is used as thezendhqd.inifile by the container.default_monitor_rules.json: Thedefault_monitor_rules.jsonfile that is used by the container to seed monitoring rules on zendhqd initialization.license: Your ZendHQ license file.*.sh: Any executable shell scripts in this directory are executed during container initialization.
Healthcheck
The ZendHQ images contain the script /usr/local/bin/healthcheck.sh. Use this healthcheck in your orchestration to verify that the ZendHQ daemon is running.
As an example, from a docker-compose.yml configuration, use the following code:
healthcheck:
test: /usr/local/bin/healthcheck.sh
interval: 30s
timeout: 10s
retries: 5
start_period: 30s
ZendPHP user and group
The Docker images create the following users and groups:
-
A
zendphpuser with UID 10000 -
A
zendphpgroup with GID 10001
Use this user and group to set permissions of directories and files mounted through volumes, for example, the database directory.
FAQ
-
If a
ZENDHQ_TOKENbuild argument is provided, its value is injected into thezendhqd.inifile after it has been copied from the/entrypoint.d/directory. -
Any files in the
/entrypoint.d/directory other than those listed in the above section are ignored. -
We recommend running the ZendHQ docker images as the
zendphpuser. -
If you wish to persist the ZendHQ database between invocations of the container, create a read/write volume, and map it to
/opt/zend/zendphp/var/dbin your container.The following databases are persisted:
-
codetracing.db holds any captured code traces
-
conf.db holds configuration that is distributed to PHP nodes (e.g. monitoring rules)
-
jobqueue.db holds the queue and job definitions, as well as job history.
-
monitor.db holds captured monitoring events.
-
user.db holds the group, user, and permissions entries for access management.
-
z_ray.db holds captured Z-Ray events.
-
-
For more information on Dockerfile customizations for RHEL customers, see Using RHEL-based-Docker-containers.