From 44eda29b601f06ecd61d7066e9bcf410ee42c8d3 Mon Sep 17 00:00:00 2001 From: Alexey Pustovalov Date: Tue, 24 Dec 2024 17:42:58 +0900 Subject: [PATCH] Using env variables for zabbix user home and configuration files directory --- Dockerfiles/agent/alpine/Dockerfile | 30 ++++++------ Dockerfiles/agent/alpine/docker-entrypoint.sh | 8 +--- Dockerfiles/agent/centos/Dockerfile | 33 +++++++------ Dockerfiles/agent/centos/docker-entrypoint.sh | 8 +--- Dockerfiles/agent/ol/Dockerfile | 28 +++++------ Dockerfiles/agent/ol/docker-entrypoint.sh | 8 +--- Dockerfiles/agent/rhel/Dockerfile | 30 ++++++------ Dockerfiles/agent/rhel/docker-entrypoint.sh | 8 +--- Dockerfiles/agent/ubuntu/Dockerfile | 30 ++++++------ Dockerfiles/agent/ubuntu/docker-entrypoint.sh | 8 +--- Dockerfiles/agent2/alpine/Dockerfile | 32 +++++++------ .../agent2/alpine/docker-entrypoint.sh | 16 +++---- Dockerfiles/agent2/centos/Dockerfile | 32 +++++++------ .../agent2/centos/docker-entrypoint.sh | 16 +++---- Dockerfiles/agent2/ol/Dockerfile | 32 +++++++------ Dockerfiles/agent2/ol/docker-entrypoint.sh | 16 +++---- Dockerfiles/agent2/rhel/Dockerfile | 32 +++++++------ Dockerfiles/agent2/rhel/docker-entrypoint.sh | 16 +++---- Dockerfiles/agent2/ubuntu/Dockerfile | 32 +++++++------ .../agent2/ubuntu/docker-entrypoint.sh | 16 +++---- Dockerfiles/java-gateway/alpine/Dockerfile | 18 ++++---- .../alpine/conf/usr/sbin/zabbix_java_gateway | 2 +- .../java-gateway/alpine/docker-entrypoint.sh | 6 +-- Dockerfiles/java-gateway/centos/Dockerfile | 18 ++++---- .../centos/conf/usr/sbin/zabbix_java_gateway | 2 +- .../java-gateway/centos/docker-entrypoint.sh | 6 +-- Dockerfiles/java-gateway/ol/Dockerfile | 18 ++++---- .../ol/conf/usr/sbin/zabbix_java_gateway | 2 +- .../java-gateway/ol/docker-entrypoint.sh | 6 +-- Dockerfiles/java-gateway/rhel/Dockerfile | 18 ++++---- .../rhel/conf/usr/sbin/zabbix_java_gateway | 2 +- .../java-gateway/rhel/docker-entrypoint.sh | 6 +-- Dockerfiles/java-gateway/ubuntu/Dockerfile | 18 ++++---- .../ubuntu/conf/usr/sbin/zabbix_java_gateway | 2 +- .../java-gateway/ubuntu/docker-entrypoint.sh | 6 +-- Dockerfiles/proxy-mysql/alpine/Dockerfile | 40 ++++++++-------- .../proxy-mysql/alpine/docker-entrypoint.sh | 7 +-- Dockerfiles/proxy-mysql/centos/Dockerfile | 40 ++++++++-------- .../proxy-mysql/centos/docker-entrypoint.sh | 7 +-- Dockerfiles/proxy-mysql/ol/Dockerfile | 42 +++++++++-------- .../proxy-mysql/ol/docker-entrypoint.sh | 7 +-- Dockerfiles/proxy-mysql/rhel/Dockerfile | 40 ++++++++-------- .../proxy-mysql/rhel/docker-entrypoint.sh | 7 +-- Dockerfiles/proxy-mysql/ubuntu/Dockerfile | 42 +++++++++-------- .../proxy-mysql/ubuntu/docker-entrypoint.sh | 7 +-- Dockerfiles/proxy-sqlite3/alpine/Dockerfile | 42 +++++++++-------- .../proxy-sqlite3/alpine/docker-entrypoint.sh | 11 ++--- Dockerfiles/proxy-sqlite3/centos/Dockerfile | 42 +++++++++-------- .../proxy-sqlite3/centos/docker-entrypoint.sh | 11 ++--- Dockerfiles/proxy-sqlite3/ol/Dockerfile | 42 +++++++++-------- .../proxy-sqlite3/ol/docker-entrypoint.sh | 11 ++--- Dockerfiles/proxy-sqlite3/rhel/Dockerfile | 42 +++++++++-------- .../proxy-sqlite3/rhel/docker-entrypoint.sh | 11 ++--- Dockerfiles/proxy-sqlite3/ubuntu/Dockerfile | 44 +++++++++--------- .../proxy-sqlite3/ubuntu/docker-entrypoint.sh | 11 ++--- Dockerfiles/server-mysql/alpine/Dockerfile | 44 +++++++++--------- .../server-mysql/alpine/docker-entrypoint.sh | 8 +--- Dockerfiles/server-mysql/centos/Dockerfile | 44 +++++++++--------- .../server-mysql/centos/docker-entrypoint.sh | 8 +--- Dockerfiles/server-mysql/ol/Dockerfile | 46 ++++++++++--------- .../server-mysql/ol/docker-entrypoint.sh | 8 +--- Dockerfiles/server-mysql/rhel/Dockerfile | 44 +++++++++--------- .../server-mysql/rhel/docker-entrypoint.sh | 8 +--- Dockerfiles/server-mysql/ubuntu/Dockerfile | 44 +++++++++--------- .../server-mysql/ubuntu/docker-entrypoint.sh | 8 +--- Dockerfiles/server-pgsql/alpine/Dockerfile | 44 +++++++++--------- .../server-pgsql/alpine/docker-entrypoint.sh | 8 +--- Dockerfiles/server-pgsql/centos/Dockerfile | 44 +++++++++--------- .../server-pgsql/centos/docker-entrypoint.sh | 8 +--- Dockerfiles/server-pgsql/ol/Dockerfile | 46 ++++++++++--------- .../server-pgsql/ol/docker-entrypoint.sh | 8 +--- Dockerfiles/server-pgsql/rhel/Dockerfile | 44 +++++++++--------- .../server-pgsql/rhel/docker-entrypoint.sh | 8 +--- Dockerfiles/server-pgsql/ubuntu/Dockerfile | 44 +++++++++--------- .../server-pgsql/ubuntu/docker-entrypoint.sh | 8 +--- Dockerfiles/snmptraps/alpine/Dockerfile | 21 +++++---- Dockerfiles/snmptraps/centos/Dockerfile | 21 +++++---- Dockerfiles/snmptraps/ol/Dockerfile | 21 +++++---- Dockerfiles/snmptraps/rhel/Dockerfile | 21 +++++---- Dockerfiles/snmptraps/ubuntu/Dockerfile | 21 +++++---- .../web-apache-mysql/alpine/Dockerfile | 19 ++++---- .../alpine/docker-entrypoint.sh | 16 +++---- .../web-apache-mysql/centos/Dockerfile | 19 ++++---- .../centos/docker-entrypoint.sh | 16 +++---- Dockerfiles/web-apache-mysql/ol/Dockerfile | 19 ++++---- .../web-apache-mysql/ol/docker-entrypoint.sh | 16 +++---- .../web-apache-mysql/ubuntu/Dockerfile | 19 ++++---- .../ubuntu/docker-entrypoint.sh | 18 ++++---- .../web-apache-pgsql/alpine/Dockerfile | 19 ++++---- .../alpine/docker-entrypoint.sh | 16 +++---- .../web-apache-pgsql/centos/Dockerfile | 19 ++++---- .../centos/docker-entrypoint.sh | 16 +++---- Dockerfiles/web-apache-pgsql/ol/Dockerfile | 19 ++++---- .../web-apache-pgsql/ol/docker-entrypoint.sh | 16 +++---- .../web-apache-pgsql/ubuntu/Dockerfile | 19 ++++---- .../ubuntu/docker-entrypoint.sh | 18 ++++---- Dockerfiles/web-nginx-mysql/alpine/Dockerfile | 19 ++++---- .../alpine/docker-entrypoint.sh | 28 ++++++----- Dockerfiles/web-nginx-mysql/centos/Dockerfile | 19 ++++---- .../centos/docker-entrypoint.sh | 28 ++++++----- Dockerfiles/web-nginx-mysql/ol/Dockerfile | 19 ++++---- .../web-nginx-mysql/ol/docker-entrypoint.sh | 28 ++++++----- Dockerfiles/web-nginx-mysql/rhel/Dockerfile | 19 ++++---- .../web-nginx-mysql/rhel/docker-entrypoint.sh | 28 ++++++----- Dockerfiles/web-nginx-mysql/ubuntu/Dockerfile | 19 ++++---- .../ubuntu/docker-entrypoint.sh | 28 ++++++----- Dockerfiles/web-nginx-pgsql/alpine/Dockerfile | 19 ++++---- .../alpine/docker-entrypoint.sh | 28 ++++++----- Dockerfiles/web-nginx-pgsql/centos/Dockerfile | 19 ++++---- .../centos/docker-entrypoint.sh | 26 +++++------ Dockerfiles/web-nginx-pgsql/ol/Dockerfile | 19 ++++---- .../web-nginx-pgsql/ol/docker-entrypoint.sh | 26 +++++------ Dockerfiles/web-nginx-pgsql/rhel/Dockerfile | 19 ++++---- .../web-nginx-pgsql/rhel/docker-entrypoint.sh | 26 +++++------ Dockerfiles/web-nginx-pgsql/ubuntu/Dockerfile | 19 ++++---- .../ubuntu/docker-entrypoint.sh | 26 +++++------ Dockerfiles/web-service/alpine/Dockerfile | 24 +++++----- .../web-service/alpine/docker-entrypoint.sh | 6 +-- Dockerfiles/web-service/centos/Dockerfile | 22 +++++---- .../web-service/centos/docker-entrypoint.sh | 6 +-- Dockerfiles/web-service/ol/Dockerfile | 22 +++++---- .../web-service/ol/docker-entrypoint.sh | 6 +-- Dockerfiles/web-service/rhel/Dockerfile | 22 +++++---- .../web-service/rhel/docker-entrypoint.sh | 6 +-- Dockerfiles/web-service/ubuntu/Dockerfile | 24 +++++----- .../web-service/ubuntu/docker-entrypoint.sh | 6 +-- 126 files changed, 1242 insertions(+), 1344 deletions(-) diff --git a/Dockerfiles/agent/alpine/Dockerfile b/Dockerfiles/agent/alpine/Dockerfile index f7e6aa3da..49acebfac 100644 --- a/Dockerfiles/agent/alpine/Dockerfile +++ b/Dockerfiles/agent/alpine/Dockerfile @@ -12,7 +12,9 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix agent is deployed on a monitoring target to actively monitor local resources and applications" \ @@ -28,7 +30,7 @@ STOPSIGNAL SIGTERM COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent/sbin/zabbix_agentd", "/usr/sbin/zabbix_agentd"] COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/general/bin/*", "/usr/bin/"] -COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent/conf/", "/etc/zabbix/"] +COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent/conf/", "${ZABBIX_CONF_DIR}/"] RUN set -eux && \ INSTALL_PKGS="tini \ @@ -57,22 +59,22 @@ RUN set -eux && \ --uid 1997 \ --ingroup zabbix \ --shell /sbin/nologin \ - --home /var/lib/zabbix/ \ + --home ${ZABBIX_USER_HOME_DIR} \ zabbix && \ - mkdir -p /etc/zabbix && \ - mkdir -p /etc/zabbix/zabbix_agentd.d && \ - mkdir -p /var/lib/zabbix && \ - mkdir -p /var/lib/zabbix/enc && \ - mkdir -p /var/lib/zabbix/enc_internal && \ - mkdir -p /var/lib/zabbix/modules && \ - mkdir -p /var/lib/zabbix/user_scripts && \ - chown --quiet -R zabbix:root /etc/zabbix/ /var/lib/zabbix/ && \ - chgrp -R 0 /etc/zabbix/ /var/lib/zabbix/ && \ - chmod -R g=u /etc/zabbix/ /var/lib/zabbix/ + mkdir -p ${ZABBIX_CONF_DIR} && \ + mkdir -p ${ZABBIX_CONF_DIR}/zabbix_agentd.d && \ + mkdir -p ${ZABBIX_USER_HOME_DIR} && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc_internal && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/modules && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/user_scripts && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ EXPOSE 10050/TCP -WORKDIR /var/lib/zabbix +WORKDIR ${ZABBIX_USER_HOME_DIR} COPY ["docker-entrypoint.sh", "/usr/bin/"] diff --git a/Dockerfiles/agent/alpine/docker-entrypoint.sh b/Dockerfiles/agent/alpine/docker-entrypoint.sh index 578fd65f5..6aa95f10c 100755 --- a/Dockerfiles/agent/alpine/docker-entrypoint.sh +++ b/Dockerfiles/agent/alpine/docker-entrypoint.sh @@ -16,10 +16,6 @@ fi : ${ZBX_SERVER_PORT:="10051"} # Default directories -# User 'zabbix' home directory -ZABBIX_USER_HOME_DIR="/var/lib/zabbix" -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Internal directory for TLS related files, used when TLS*File specified as plain text values ZABBIX_INTERNAL_ENC_DIR="${ZABBIX_USER_HOME_DIR}/enc_internal" @@ -129,7 +125,7 @@ file_process_from_env() { prepare_zbx_agent_config() { echo "** Preparing Zabbix agent configuration file" - ZBX_AGENT_CONFIG=$ZABBIX_ETC_DIR/zabbix_agentd.conf + ZBX_AGENT_CONFIG=$ZABBIX_CONF_DIR/zabbix_agentd.conf : ${ZBX_PASSIVESERVERS:=""} : ${ZBX_ACTIVESERVERS:=""} @@ -186,7 +182,7 @@ prepare_zbx_agent_config() { # Please use include to enable Alias feature # update_config_multiple_var $ZBX_AGENT_CONFIG "Alias" ${ZBX_ALIAS} update_config_var $ZBX_AGENT_CONFIG "Timeout" "${ZBX_TIMEOUT}" - update_config_var $ZBX_AGENT_CONFIG "Include" "/etc/zabbix/zabbix_agentd.d/*.conf" + update_config_var $ZBX_AGENT_CONFIG "Include" "${ZABBIX_CONF_DIR}/zabbix_agentd.d/*.conf" update_config_var $ZBX_AGENT_CONFIG "UserParameterDir" "$ZABBIX_USER_HOME_DIR/user_scripts" update_config_var $ZBX_AGENT_CONFIG "UnsafeUserParameters" "${ZBX_UNSAFEUSERPARAMETERS}" update_config_var $ZBX_AGENT_CONFIG "LoadModulePath" "$ZABBIX_USER_HOME_DIR/modules/" diff --git a/Dockerfiles/agent/centos/Dockerfile b/Dockerfiles/agent/centos/Dockerfile index 9e4bd97e1..0c8436d8f 100644 --- a/Dockerfiles/agent/centos/Dockerfile +++ b/Dockerfiles/agent/centos/Dockerfile @@ -12,7 +12,9 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix agent is deployed on a monitoring target to actively monitor local resources and applications" \ @@ -28,7 +30,7 @@ STOPSIGNAL SIGTERM COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent/sbin/zabbix_agentd", "/usr/sbin/zabbix_agentd"] COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/general/bin/*", "/usr/bin/"] -COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent/conf/", "/etc/zabbix/"] +COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent/conf/", "${ZABBIX_CONF_DIR}/"] RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ set -eux && \ @@ -69,27 +71,28 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ --gid 1995 \ zabbix && \ useradd \ - --system --comment "Zabbix monitoring system" \ + --system \ + --comment "Zabbix monitoring system" \ -g zabbix \ --uid 1997 \ --shell /sbin/nologin \ - --home-dir /var/lib/zabbix/ \ + --home-dir ${ZABBIX_USER_HOME_DIR} \ zabbix && \ - mkdir -p /etc/zabbix && \ - mkdir -p /etc/zabbix/zabbix_agentd.d && \ - mkdir -p /var/lib/zabbix && \ - mkdir -p /var/lib/zabbix/enc && \ - mkdir -p /var/lib/zabbix/enc_internal && \ - mkdir -p /var/lib/zabbix/modules && \ - mkdir -p /var/lib/zabbix/user_scripts && \ - chown --quiet -R zabbix:root /etc/zabbix/ /var/lib/zabbix/ && \ - chgrp -R 0 /etc/zabbix/ /var/lib/zabbix/ && \ - chmod -R g=u /etc/zabbix/ /var/lib/zabbix/ && \ + mkdir -p ZABBIX_CONF_DIR/ && \ + mkdir -p ${ZABBIX_CONF_DIR}/zabbix_agentd.d && \ + mkdir -p ${ZABBIX_USER_HOME_DIR} && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc_internal && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/modules && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/user_scripts && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ microdnf -y clean all EXPOSE 10050/TCP -WORKDIR /var/lib/zabbix +WORKDIR ${ZABBIX_USER_HOME_DIR} COPY ["docker-entrypoint.sh", "/usr/bin/"] diff --git a/Dockerfiles/agent/centos/docker-entrypoint.sh b/Dockerfiles/agent/centos/docker-entrypoint.sh index 578fd65f5..6aa95f10c 100755 --- a/Dockerfiles/agent/centos/docker-entrypoint.sh +++ b/Dockerfiles/agent/centos/docker-entrypoint.sh @@ -16,10 +16,6 @@ fi : ${ZBX_SERVER_PORT:="10051"} # Default directories -# User 'zabbix' home directory -ZABBIX_USER_HOME_DIR="/var/lib/zabbix" -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Internal directory for TLS related files, used when TLS*File specified as plain text values ZABBIX_INTERNAL_ENC_DIR="${ZABBIX_USER_HOME_DIR}/enc_internal" @@ -129,7 +125,7 @@ file_process_from_env() { prepare_zbx_agent_config() { echo "** Preparing Zabbix agent configuration file" - ZBX_AGENT_CONFIG=$ZABBIX_ETC_DIR/zabbix_agentd.conf + ZBX_AGENT_CONFIG=$ZABBIX_CONF_DIR/zabbix_agentd.conf : ${ZBX_PASSIVESERVERS:=""} : ${ZBX_ACTIVESERVERS:=""} @@ -186,7 +182,7 @@ prepare_zbx_agent_config() { # Please use include to enable Alias feature # update_config_multiple_var $ZBX_AGENT_CONFIG "Alias" ${ZBX_ALIAS} update_config_var $ZBX_AGENT_CONFIG "Timeout" "${ZBX_TIMEOUT}" - update_config_var $ZBX_AGENT_CONFIG "Include" "/etc/zabbix/zabbix_agentd.d/*.conf" + update_config_var $ZBX_AGENT_CONFIG "Include" "${ZABBIX_CONF_DIR}/zabbix_agentd.d/*.conf" update_config_var $ZBX_AGENT_CONFIG "UserParameterDir" "$ZABBIX_USER_HOME_DIR/user_scripts" update_config_var $ZBX_AGENT_CONFIG "UnsafeUserParameters" "${ZBX_UNSAFEUSERPARAMETERS}" update_config_var $ZBX_AGENT_CONFIG "LoadModulePath" "$ZABBIX_USER_HOME_DIR/modules/" diff --git a/Dockerfiles/agent/ol/Dockerfile b/Dockerfiles/agent/ol/Dockerfile index cb1577b8a..a67131c97 100644 --- a/Dockerfiles/agent/ol/Dockerfile +++ b/Dockerfiles/agent/ol/Dockerfile @@ -12,7 +12,9 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix agent is deployed on a monitoring target to actively monitor local resources and applications" \ @@ -61,23 +63,23 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ -g zabbix \ --uid 1997 \ --shell /sbin/nologin \ - --home-dir /var/lib/zabbix/ \ + --home-dir ${ZABBIX_USER_HOME_DIR} \ zabbix && \ - mkdir -p /etc/zabbix && \ - mkdir -p /etc/zabbix/zabbix_agentd.d && \ - mkdir -p /var/lib/zabbix && \ - mkdir -p /var/lib/zabbix/enc && \ - mkdir -p /var/lib/zabbix/enc_internal && \ - mkdir -p /var/lib/zabbix/modules && \ - mkdir -p /var/lib/zabbix/user_scripts && \ - chown --quiet -R zabbix:root /etc/zabbix/ /var/lib/zabbix/ && \ - chgrp -R 0 /etc/zabbix/ /var/lib/zabbix/ && \ - chmod -R g=u /etc/zabbix/ /var/lib/zabbix/ && \ + mkdir -p ZABBIX_CONF_DIR/ && \ + mkdir -p ${ZABBIX_CONF_DIR}/zabbix_agentd.d && \ + mkdir -p ${ZABBIX_USER_HOME_DIR} && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc_internal && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/modules && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/user_scripts && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ microdnf -y clean all EXPOSE 10050/TCP -WORKDIR /var/lib/zabbix +WORKDIR ${ZABBIX_USER_HOME_DIR} COPY ["docker-entrypoint.sh", "/usr/bin/"] diff --git a/Dockerfiles/agent/ol/docker-entrypoint.sh b/Dockerfiles/agent/ol/docker-entrypoint.sh index 578fd65f5..6aa95f10c 100755 --- a/Dockerfiles/agent/ol/docker-entrypoint.sh +++ b/Dockerfiles/agent/ol/docker-entrypoint.sh @@ -16,10 +16,6 @@ fi : ${ZBX_SERVER_PORT:="10051"} # Default directories -# User 'zabbix' home directory -ZABBIX_USER_HOME_DIR="/var/lib/zabbix" -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Internal directory for TLS related files, used when TLS*File specified as plain text values ZABBIX_INTERNAL_ENC_DIR="${ZABBIX_USER_HOME_DIR}/enc_internal" @@ -129,7 +125,7 @@ file_process_from_env() { prepare_zbx_agent_config() { echo "** Preparing Zabbix agent configuration file" - ZBX_AGENT_CONFIG=$ZABBIX_ETC_DIR/zabbix_agentd.conf + ZBX_AGENT_CONFIG=$ZABBIX_CONF_DIR/zabbix_agentd.conf : ${ZBX_PASSIVESERVERS:=""} : ${ZBX_ACTIVESERVERS:=""} @@ -186,7 +182,7 @@ prepare_zbx_agent_config() { # Please use include to enable Alias feature # update_config_multiple_var $ZBX_AGENT_CONFIG "Alias" ${ZBX_ALIAS} update_config_var $ZBX_AGENT_CONFIG "Timeout" "${ZBX_TIMEOUT}" - update_config_var $ZBX_AGENT_CONFIG "Include" "/etc/zabbix/zabbix_agentd.d/*.conf" + update_config_var $ZBX_AGENT_CONFIG "Include" "${ZABBIX_CONF_DIR}/zabbix_agentd.d/*.conf" update_config_var $ZBX_AGENT_CONFIG "UserParameterDir" "$ZABBIX_USER_HOME_DIR/user_scripts" update_config_var $ZBX_AGENT_CONFIG "UnsafeUserParameters" "${ZBX_UNSAFEUSERPARAMETERS}" update_config_var $ZBX_AGENT_CONFIG "LoadModulePath" "$ZABBIX_USER_HOME_DIR/modules/" diff --git a/Dockerfiles/agent/rhel/Dockerfile b/Dockerfiles/agent/rhel/Dockerfile index 7cc75220d..f92c427fc 100644 --- a/Dockerfiles/agent/rhel/Dockerfile +++ b/Dockerfiles/agent/rhel/Dockerfile @@ -14,7 +14,9 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL description="Zabbix agent is deployed on a monitoring target to actively monitor local resources and applications" \ maintainer="alexey.pustovalov@zabbix.com" \ @@ -47,7 +49,7 @@ STOPSIGNAL SIGTERM COPY ["licenses", "/licenses"] COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent/sbin/zabbix_agentd", "/usr/sbin/zabbix_agentd"] COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/general/bin/*", "/usr/bin/"] -COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent/conf/", "/etc/zabbix/"] +COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent/conf/", "${ZABBIX_CONF_DIR}/"] RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ set -eux && \ @@ -99,23 +101,23 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ -g zabbix \ --uid 1997 \ --shell /sbin/nologin \ - --home-dir /var/lib/zabbix/ \ + --home-dir ${ZABBIX_USER_HOME_DIR} \ zabbix && \ - mkdir -p /etc/zabbix && \ - mkdir -p /etc/zabbix/zabbix_agentd.d && \ - mkdir -p /var/lib/zabbix && \ - mkdir -p /var/lib/zabbix/enc && \ - mkdir -p /var/lib/zabbix/enc_internal && \ - mkdir -p /var/lib/zabbix/modules && \ - mkdir -p /var/lib/zabbix/user_scripts && \ - chown --quiet -R zabbix:root /etc/zabbix/ /var/lib/zabbix/ && \ - chgrp -R 0 /etc/zabbix/ /var/lib/zabbix/ && \ - chmod -R g=u /etc/zabbix/ /var/lib/zabbix/ && \ + mkdir -p ZABBIX_CONF_DIR/ && \ + mkdir -p ${ZABBIX_CONF_DIR}/zabbix_agentd.d && \ + mkdir -p ${ZABBIX_USER_HOME_DIR} && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc_internal && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/modules && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/user_scripts && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ microdnf -y clean all EXPOSE 10050/TCP -WORKDIR /var/lib/zabbix +WORKDIR ${ZABBIX_USER_HOME_DIR} COPY ["docker-entrypoint.sh", "/usr/bin/"] diff --git a/Dockerfiles/agent/rhel/docker-entrypoint.sh b/Dockerfiles/agent/rhel/docker-entrypoint.sh index 578fd65f5..6aa95f10c 100755 --- a/Dockerfiles/agent/rhel/docker-entrypoint.sh +++ b/Dockerfiles/agent/rhel/docker-entrypoint.sh @@ -16,10 +16,6 @@ fi : ${ZBX_SERVER_PORT:="10051"} # Default directories -# User 'zabbix' home directory -ZABBIX_USER_HOME_DIR="/var/lib/zabbix" -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Internal directory for TLS related files, used when TLS*File specified as plain text values ZABBIX_INTERNAL_ENC_DIR="${ZABBIX_USER_HOME_DIR}/enc_internal" @@ -129,7 +125,7 @@ file_process_from_env() { prepare_zbx_agent_config() { echo "** Preparing Zabbix agent configuration file" - ZBX_AGENT_CONFIG=$ZABBIX_ETC_DIR/zabbix_agentd.conf + ZBX_AGENT_CONFIG=$ZABBIX_CONF_DIR/zabbix_agentd.conf : ${ZBX_PASSIVESERVERS:=""} : ${ZBX_ACTIVESERVERS:=""} @@ -186,7 +182,7 @@ prepare_zbx_agent_config() { # Please use include to enable Alias feature # update_config_multiple_var $ZBX_AGENT_CONFIG "Alias" ${ZBX_ALIAS} update_config_var $ZBX_AGENT_CONFIG "Timeout" "${ZBX_TIMEOUT}" - update_config_var $ZBX_AGENT_CONFIG "Include" "/etc/zabbix/zabbix_agentd.d/*.conf" + update_config_var $ZBX_AGENT_CONFIG "Include" "${ZABBIX_CONF_DIR}/zabbix_agentd.d/*.conf" update_config_var $ZBX_AGENT_CONFIG "UserParameterDir" "$ZABBIX_USER_HOME_DIR/user_scripts" update_config_var $ZBX_AGENT_CONFIG "UnsafeUserParameters" "${ZBX_UNSAFEUSERPARAMETERS}" update_config_var $ZBX_AGENT_CONFIG "LoadModulePath" "$ZABBIX_USER_HOME_DIR/modules/" diff --git a/Dockerfiles/agent/ubuntu/Dockerfile b/Dockerfiles/agent/ubuntu/Dockerfile index 5e1b93bd1..ad49e23c2 100644 --- a/Dockerfiles/agent/ubuntu/Dockerfile +++ b/Dockerfiles/agent/ubuntu/Dockerfile @@ -12,7 +12,9 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix agent is deployed on a monitoring target to actively monitor local resources and applications" \ @@ -28,7 +30,7 @@ STOPSIGNAL SIGTERM COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent/sbin/zabbix_agentd", "/usr/sbin/zabbix_agentd"] COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/general/bin/*", "/usr/bin/"] -COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent/conf/", "/etc/zabbix/"] +COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent/conf/", "${ZABBIX_CONF_DIR}/"] RUN --mount=type=cache,target=/var/lib/apt/,sharing=locked \ set -eux && \ @@ -57,24 +59,24 @@ RUN --mount=type=cache,target=/var/lib/apt/,sharing=locked \ -g zabbix \ --uid 1997 \ --shell /sbin/nologin \ - --home-dir /var/lib/zabbix/ \ + --home-dir ${ZABBIX_USER_HOME_DIR} \ zabbix && \ - mkdir -p /etc/zabbix && \ - mkdir -p /etc/zabbix/zabbix_agentd.d && \ - mkdir -p /var/lib/zabbix && \ - mkdir -p /var/lib/zabbix/enc && \ - mkdir -p /var/lib/zabbix/enc_internal && \ - mkdir -p /var/lib/zabbix/modules && \ - mkdir -p /var/lib/zabbix/user_scripts && \ - chown --quiet -R zabbix:root /etc/zabbix/ /var/lib/zabbix/ && \ - chgrp -R 0 /etc/zabbix/ /var/lib/zabbix/ && \ - chmod -R g=u /etc/zabbix/ /var/lib/zabbix/ && \ + mkdir -p ${ZABBIX_CONF_DIR} && \ + mkdir -p ${ZABBIX_CONF_DIR}/zabbix_agentd.d && \ + mkdir -p ${ZABBIX_USER_HOME_DIR} && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc_internal && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/modules && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/user_scripts && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ apt-get -y autoremove && \ apt-get -y clean EXPOSE 10050/TCP -WORKDIR /var/lib/zabbix +WORKDIR ${ZABBIX_USER_HOME_DIR} COPY ["docker-entrypoint.sh", "/usr/bin/"] diff --git a/Dockerfiles/agent/ubuntu/docker-entrypoint.sh b/Dockerfiles/agent/ubuntu/docker-entrypoint.sh index 578fd65f5..6aa95f10c 100755 --- a/Dockerfiles/agent/ubuntu/docker-entrypoint.sh +++ b/Dockerfiles/agent/ubuntu/docker-entrypoint.sh @@ -16,10 +16,6 @@ fi : ${ZBX_SERVER_PORT:="10051"} # Default directories -# User 'zabbix' home directory -ZABBIX_USER_HOME_DIR="/var/lib/zabbix" -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Internal directory for TLS related files, used when TLS*File specified as plain text values ZABBIX_INTERNAL_ENC_DIR="${ZABBIX_USER_HOME_DIR}/enc_internal" @@ -129,7 +125,7 @@ file_process_from_env() { prepare_zbx_agent_config() { echo "** Preparing Zabbix agent configuration file" - ZBX_AGENT_CONFIG=$ZABBIX_ETC_DIR/zabbix_agentd.conf + ZBX_AGENT_CONFIG=$ZABBIX_CONF_DIR/zabbix_agentd.conf : ${ZBX_PASSIVESERVERS:=""} : ${ZBX_ACTIVESERVERS:=""} @@ -186,7 +182,7 @@ prepare_zbx_agent_config() { # Please use include to enable Alias feature # update_config_multiple_var $ZBX_AGENT_CONFIG "Alias" ${ZBX_ALIAS} update_config_var $ZBX_AGENT_CONFIG "Timeout" "${ZBX_TIMEOUT}" - update_config_var $ZBX_AGENT_CONFIG "Include" "/etc/zabbix/zabbix_agentd.d/*.conf" + update_config_var $ZBX_AGENT_CONFIG "Include" "${ZABBIX_CONF_DIR}/zabbix_agentd.d/*.conf" update_config_var $ZBX_AGENT_CONFIG "UserParameterDir" "$ZABBIX_USER_HOME_DIR/user_scripts" update_config_var $ZBX_AGENT_CONFIG "UnsafeUserParameters" "${ZBX_UNSAFEUSERPARAMETERS}" update_config_var $ZBX_AGENT_CONFIG "LoadModulePath" "$ZABBIX_USER_HOME_DIR/modules/" diff --git a/Dockerfiles/agent2/alpine/Dockerfile b/Dockerfiles/agent2/alpine/Dockerfile index eda9b5607..f2353cc28 100644 --- a/Dockerfiles/agent2/alpine/Dockerfile +++ b/Dockerfiles/agent2/alpine/Dockerfile @@ -12,7 +12,9 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix agent 2 is deployed on a monitoring target to actively monitor local resources and applications" \ @@ -28,7 +30,7 @@ STOPSIGNAL SIGTERM COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent2/sbin/", "/usr/sbin/"] COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/general/bin/*", "/usr/bin/"] -COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent2/conf/", "/etc/zabbix/"] +COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent2/conf/", "${ZABBIX_CONF_DIR}/"] RUN set -eux && \ INSTALL_PKGS="tini \ @@ -55,24 +57,24 @@ RUN set -eux && \ --uid 1997 \ --ingroup zabbix \ --shell /sbin/nologin \ - --home /var/lib/zabbix/ \ + --home ${ZABBIX_USER_HOME_DIR} \ zabbix && \ echo "zabbix ALL=(root) NOPASSWD: /usr/sbin/smartctl" >> /etc/sudoers.d/zabbix && \ - mkdir -p /etc/zabbix && \ - mkdir -p /etc/zabbix/zabbix_agentd.d && \ - mkdir -p /var/lib/zabbix && \ - mkdir -p /var/lib/zabbix/enc && \ - mkdir -p /var/lib/zabbix/enc_internal && \ - mkdir -p /var/lib/zabbix/modules && \ - mkdir -p /var/lib/zabbix/buffer && \ - mkdir -p /var/lib/zabbix/user_scripts && \ - chown --quiet -R zabbix:root /etc/zabbix/ /var/lib/zabbix/ /usr/sbin/zabbix-agent2-plugin/ && \ - chgrp -R 0 /etc/zabbix/ /var/lib/zabbix/ /usr/sbin/zabbix-agent2-plugin/ && \ - chmod -R g=u /etc/zabbix/ /var/lib/zabbix/ /usr/sbin/zabbix-agent2-plugin/ + mkdir -p ${ZABBIX_CONF_DIR} && \ + mkdir -p ${ZABBIX_CONF_DIR}/zabbix_agentd.d && \ + mkdir -p ${ZABBIX_USER_HOME_DIR} && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc_internal && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/modules && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/buffer && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/user_scripts && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ EXPOSE 10050/TCP 31999/TCP -WORKDIR /var/lib/zabbix +WORKDIR ${ZABBIX_USER_HOME_DIR} COPY ["docker-entrypoint.sh", "/usr/bin/"] diff --git a/Dockerfiles/agent2/alpine/docker-entrypoint.sh b/Dockerfiles/agent2/alpine/docker-entrypoint.sh index c8154f33f..ce5b635a7 100755 --- a/Dockerfiles/agent2/alpine/docker-entrypoint.sh +++ b/Dockerfiles/agent2/alpine/docker-entrypoint.sh @@ -16,10 +16,6 @@ fi : ${ZBX_SERVER_PORT:="10051"} # Default directories -# User 'zabbix' home directory -ZABBIX_USER_HOME_DIR="/var/lib/zabbix" -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Internal directory for TLS related files, used when TLS*File specified as plain text values ZABBIX_INTERNAL_ENC_DIR="${ZABBIX_USER_HOME_DIR}/enc_internal" @@ -129,7 +125,7 @@ file_process_from_env() { prepare_zbx_agent_config() { echo "** Preparing Zabbix agent configuration file" - ZBX_AGENT_CONFIG=$ZABBIX_ETC_DIR/zabbix_agent2.conf + ZBX_AGENT_CONFIG=${ZABBIX_CONF_DIR}/zabbix_agent2.conf : ${ZBX_PASSIVESERVERS:=""} : ${ZBX_ACTIVESERVERS:=""} @@ -195,8 +191,8 @@ prepare_zbx_agent_config() { # Please use include to enable Alias feature # update_config_multiple_var $ZBX_AGENT_CONFIG "Alias" ${ZBX_ALIAS} update_config_var $ZBX_AGENT_CONFIG "Timeout" "${ZBX_TIMEOUT}" - update_config_var $ZBX_AGENT_CONFIG "Include" "/etc/zabbix/zabbix_agent2.d/plugins.d/*.conf" - update_config_var $ZBX_AGENT_CONFIG "Include" "/etc/zabbix/zabbix_agentd.d/*.conf" "true" + update_config_var $ZBX_AGENT_CONFIG "Include" "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/*.conf" + update_config_var $ZBX_AGENT_CONFIG "Include" "${ZABBIX_CONF_DIR}/zabbix_agentd.d/*.conf" "true" update_config_var $ZBX_AGENT_CONFIG "UserParameterDir" "$ZABBIX_USER_HOME_DIR/user_scripts" update_config_var $ZBX_AGENT_CONFIG "UnsafeUserParameters" "${ZBX_UNSAFEUSERPARAMETERS}" update_config_var $ZBX_AGENT_CONFIG "TLSConnect" "${ZBX_TLSCONNECT}" @@ -217,9 +213,9 @@ prepare_zbx_agent_config() { prepare_zbx_agent_plugin_config() { echo "** Preparing Zabbix agent plugin configuration files" - update_config_var "/etc/zabbix/zabbix_agent2.d/plugins.d/mongodb.conf" "Plugins.MongoDB.System.Path" "/usr/sbin/zabbix-agent2-plugin/mongodb" - update_config_var "/etc/zabbix/zabbix_agent2.d/plugins.d/postgresql.conf" "Plugins.PostgreSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/postgresql" - update_config_var "/etc/zabbix/zabbix_agent2.d/plugins.d/mssql.conf" "Plugins.MSSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/mssql" + update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/mongodb.conf" "Plugins.MongoDB.System.Path" "/usr/sbin/zabbix-agent2-plugin/mongodb" + update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/postgresql.conf" "Plugins.PostgreSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/postgresql" + update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/mssql.conf" "Plugins.MSSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/mssql" } clear_zbx_env() { diff --git a/Dockerfiles/agent2/centos/Dockerfile b/Dockerfiles/agent2/centos/Dockerfile index 7a2bf553a..d3257073c 100644 --- a/Dockerfiles/agent2/centos/Dockerfile +++ b/Dockerfiles/agent2/centos/Dockerfile @@ -12,7 +12,9 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix agent 2 is deployed on a monitoring target to actively monitor local resources and applications" \ @@ -28,7 +30,7 @@ STOPSIGNAL SIGTERM COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent2/sbin/", "/usr/sbin/"] COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/general/bin/*", "/usr/bin/"] -COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent2/conf/", "/etc/zabbix/"] +COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent2/conf/", "${ZABBIX_CONF_DIR}/"] RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ set -eux && \ @@ -74,25 +76,25 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ -g zabbix \ --uid 1997 \ --shell /sbin/nologin \ - --home-dir /var/lib/zabbix/ \ + --home-dir ${ZABBIX_USER_HOME_DIR} \ zabbix && \ echo "zabbix ALL=(root) NOPASSWD: /usr/sbin/smartctl" >> /etc/sudoers.d/zabbix && \ - mkdir -p /etc/zabbix && \ - mkdir -p /etc/zabbix/zabbix_agentd.d && \ - mkdir -p /var/lib/zabbix && \ - mkdir -p /var/lib/zabbix/enc && \ - mkdir -p /var/lib/zabbix/enc_internal && \ - mkdir -p /var/lib/zabbix/modules && \ - mkdir -p /var/lib/zabbix/buffer && \ - mkdir -p /var/lib/zabbix/user_scripts && \ - chown --quiet -R zabbix:root /etc/zabbix/ /var/lib/zabbix/ /usr/sbin/zabbix-agent2-plugin/ && \ - chgrp -R 0 /etc/zabbix/ /var/lib/zabbix/ /usr/sbin/zabbix-agent2-plugin/ && \ - chmod -R g=u /etc/zabbix/ /var/lib/zabbix/ /usr/sbin/zabbix-agent2-plugin/ && \ + mkdir -p ${ZABBIX_CONF_DIR} && \ + mkdir -p ${ZABBIX_CONF_DIR}/zabbix_agentd.d && \ + mkdir -p ${ZABBIX_USER_HOME_DIR} && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc_internal && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/modules && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/buffer && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/user_scripts && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ microdnf -y clean all EXPOSE 10050/TCP 31999/TCP -WORKDIR /var/lib/zabbix +WORKDIR ${ZABBIX_USER_HOME_DIR} COPY ["docker-entrypoint.sh", "/usr/bin/"] diff --git a/Dockerfiles/agent2/centos/docker-entrypoint.sh b/Dockerfiles/agent2/centos/docker-entrypoint.sh index c8154f33f..ce5b635a7 100755 --- a/Dockerfiles/agent2/centos/docker-entrypoint.sh +++ b/Dockerfiles/agent2/centos/docker-entrypoint.sh @@ -16,10 +16,6 @@ fi : ${ZBX_SERVER_PORT:="10051"} # Default directories -# User 'zabbix' home directory -ZABBIX_USER_HOME_DIR="/var/lib/zabbix" -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Internal directory for TLS related files, used when TLS*File specified as plain text values ZABBIX_INTERNAL_ENC_DIR="${ZABBIX_USER_HOME_DIR}/enc_internal" @@ -129,7 +125,7 @@ file_process_from_env() { prepare_zbx_agent_config() { echo "** Preparing Zabbix agent configuration file" - ZBX_AGENT_CONFIG=$ZABBIX_ETC_DIR/zabbix_agent2.conf + ZBX_AGENT_CONFIG=${ZABBIX_CONF_DIR}/zabbix_agent2.conf : ${ZBX_PASSIVESERVERS:=""} : ${ZBX_ACTIVESERVERS:=""} @@ -195,8 +191,8 @@ prepare_zbx_agent_config() { # Please use include to enable Alias feature # update_config_multiple_var $ZBX_AGENT_CONFIG "Alias" ${ZBX_ALIAS} update_config_var $ZBX_AGENT_CONFIG "Timeout" "${ZBX_TIMEOUT}" - update_config_var $ZBX_AGENT_CONFIG "Include" "/etc/zabbix/zabbix_agent2.d/plugins.d/*.conf" - update_config_var $ZBX_AGENT_CONFIG "Include" "/etc/zabbix/zabbix_agentd.d/*.conf" "true" + update_config_var $ZBX_AGENT_CONFIG "Include" "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/*.conf" + update_config_var $ZBX_AGENT_CONFIG "Include" "${ZABBIX_CONF_DIR}/zabbix_agentd.d/*.conf" "true" update_config_var $ZBX_AGENT_CONFIG "UserParameterDir" "$ZABBIX_USER_HOME_DIR/user_scripts" update_config_var $ZBX_AGENT_CONFIG "UnsafeUserParameters" "${ZBX_UNSAFEUSERPARAMETERS}" update_config_var $ZBX_AGENT_CONFIG "TLSConnect" "${ZBX_TLSCONNECT}" @@ -217,9 +213,9 @@ prepare_zbx_agent_config() { prepare_zbx_agent_plugin_config() { echo "** Preparing Zabbix agent plugin configuration files" - update_config_var "/etc/zabbix/zabbix_agent2.d/plugins.d/mongodb.conf" "Plugins.MongoDB.System.Path" "/usr/sbin/zabbix-agent2-plugin/mongodb" - update_config_var "/etc/zabbix/zabbix_agent2.d/plugins.d/postgresql.conf" "Plugins.PostgreSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/postgresql" - update_config_var "/etc/zabbix/zabbix_agent2.d/plugins.d/mssql.conf" "Plugins.MSSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/mssql" + update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/mongodb.conf" "Plugins.MongoDB.System.Path" "/usr/sbin/zabbix-agent2-plugin/mongodb" + update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/postgresql.conf" "Plugins.PostgreSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/postgresql" + update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/mssql.conf" "Plugins.MSSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/mssql" } clear_zbx_env() { diff --git a/Dockerfiles/agent2/ol/Dockerfile b/Dockerfiles/agent2/ol/Dockerfile index c261c8c31..71fed1b3a 100644 --- a/Dockerfiles/agent2/ol/Dockerfile +++ b/Dockerfiles/agent2/ol/Dockerfile @@ -12,7 +12,9 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix agent 2 is deployed on a monitoring target to actively monitor local resources and applications" \ @@ -28,7 +30,7 @@ STOPSIGNAL SIGTERM COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent2/sbin/", "/usr/sbin/"] COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/general/bin/*", "/usr/bin/"] -COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent2/conf/", "/etc/zabbix/"] +COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent2/conf/", "${ZABBIX_CONF_DIR}/"] COPY ["conf/etc/yum.repos.d/oracle-epel-ol9.repo", "/etc/yum.repos.d/oracle-epel-ol9.repo"] RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ @@ -61,25 +63,25 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ -g zabbix \ --uid 1997 \ --shell /sbin/nologin \ - --home-dir /var/lib/zabbix/ \ + --home-dir ${ZABBIX_USER_HOME_DIR} \ zabbix && \ echo "zabbix ALL=(root) NOPASSWD: /usr/sbin/smartctl" >> /etc/sudoers.d/zabbix && \ - mkdir -p /etc/zabbix && \ - mkdir -p /etc/zabbix/zabbix_agentd.d && \ - mkdir -p /var/lib/zabbix && \ - mkdir -p /var/lib/zabbix/enc && \ - mkdir -p /var/lib/zabbix/enc_internal && \ - mkdir -p /var/lib/zabbix/modules && \ - mkdir -p /var/lib/zabbix/buffer && \ - mkdir -p /var/lib/zabbix/user_scripts && \ - chown --quiet -R zabbix:root /etc/zabbix/ /var/lib/zabbix/ /usr/sbin/zabbix-agent2-plugin/ && \ - chgrp -R 0 /etc/zabbix/ /var/lib/zabbix/ /usr/sbin/zabbix-agent2-plugin/ && \ - chmod -R g=u /etc/zabbix/ /var/lib/zabbix/ /usr/sbin/zabbix-agent2-plugin/ && \ + mkdir -p ${ZABBIX_CONF_DIR} && \ + mkdir -p ${ZABBIX_CONF_DIR}/zabbix_agentd.d && \ + mkdir -p ${ZABBIX_USER_HOME_DIR} && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc_internal && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/modules && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/buffer && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/user_scripts && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ microdnf -y clean all EXPOSE 10050/TCP 31999/TCP -WORKDIR /var/lib/zabbix +WORKDIR ${ZABBIX_USER_HOME_DIR} COPY ["docker-entrypoint.sh", "/usr/bin/"] diff --git a/Dockerfiles/agent2/ol/docker-entrypoint.sh b/Dockerfiles/agent2/ol/docker-entrypoint.sh index c8154f33f..ce5b635a7 100755 --- a/Dockerfiles/agent2/ol/docker-entrypoint.sh +++ b/Dockerfiles/agent2/ol/docker-entrypoint.sh @@ -16,10 +16,6 @@ fi : ${ZBX_SERVER_PORT:="10051"} # Default directories -# User 'zabbix' home directory -ZABBIX_USER_HOME_DIR="/var/lib/zabbix" -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Internal directory for TLS related files, used when TLS*File specified as plain text values ZABBIX_INTERNAL_ENC_DIR="${ZABBIX_USER_HOME_DIR}/enc_internal" @@ -129,7 +125,7 @@ file_process_from_env() { prepare_zbx_agent_config() { echo "** Preparing Zabbix agent configuration file" - ZBX_AGENT_CONFIG=$ZABBIX_ETC_DIR/zabbix_agent2.conf + ZBX_AGENT_CONFIG=${ZABBIX_CONF_DIR}/zabbix_agent2.conf : ${ZBX_PASSIVESERVERS:=""} : ${ZBX_ACTIVESERVERS:=""} @@ -195,8 +191,8 @@ prepare_zbx_agent_config() { # Please use include to enable Alias feature # update_config_multiple_var $ZBX_AGENT_CONFIG "Alias" ${ZBX_ALIAS} update_config_var $ZBX_AGENT_CONFIG "Timeout" "${ZBX_TIMEOUT}" - update_config_var $ZBX_AGENT_CONFIG "Include" "/etc/zabbix/zabbix_agent2.d/plugins.d/*.conf" - update_config_var $ZBX_AGENT_CONFIG "Include" "/etc/zabbix/zabbix_agentd.d/*.conf" "true" + update_config_var $ZBX_AGENT_CONFIG "Include" "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/*.conf" + update_config_var $ZBX_AGENT_CONFIG "Include" "${ZABBIX_CONF_DIR}/zabbix_agentd.d/*.conf" "true" update_config_var $ZBX_AGENT_CONFIG "UserParameterDir" "$ZABBIX_USER_HOME_DIR/user_scripts" update_config_var $ZBX_AGENT_CONFIG "UnsafeUserParameters" "${ZBX_UNSAFEUSERPARAMETERS}" update_config_var $ZBX_AGENT_CONFIG "TLSConnect" "${ZBX_TLSCONNECT}" @@ -217,9 +213,9 @@ prepare_zbx_agent_config() { prepare_zbx_agent_plugin_config() { echo "** Preparing Zabbix agent plugin configuration files" - update_config_var "/etc/zabbix/zabbix_agent2.d/plugins.d/mongodb.conf" "Plugins.MongoDB.System.Path" "/usr/sbin/zabbix-agent2-plugin/mongodb" - update_config_var "/etc/zabbix/zabbix_agent2.d/plugins.d/postgresql.conf" "Plugins.PostgreSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/postgresql" - update_config_var "/etc/zabbix/zabbix_agent2.d/plugins.d/mssql.conf" "Plugins.MSSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/mssql" + update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/mongodb.conf" "Plugins.MongoDB.System.Path" "/usr/sbin/zabbix-agent2-plugin/mongodb" + update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/postgresql.conf" "Plugins.PostgreSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/postgresql" + update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/mssql.conf" "Plugins.MSSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/mssql" } clear_zbx_env() { diff --git a/Dockerfiles/agent2/rhel/Dockerfile b/Dockerfiles/agent2/rhel/Dockerfile index 163cc7544..b6763f88b 100644 --- a/Dockerfiles/agent2/rhel/Dockerfile +++ b/Dockerfiles/agent2/rhel/Dockerfile @@ -14,7 +14,9 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL description="Zabbix agent 2 is deployed on a monitoring target to actively monitor local resources and applications" \ maintainer="alexey.pustovalov@zabbix.com" \ @@ -47,7 +49,7 @@ STOPSIGNAL SIGTERM COPY ["licenses", "/licenses"] COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent2/sbin/", "/usr/sbin/"] COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/general/bin/*", "/usr/bin/"] -COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent2/conf/", "/etc/zabbix/"] +COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent2/conf/", "${ZABBIX_CONF_DIR}/"] RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ set -eux && \ @@ -99,25 +101,25 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ -g zabbix \ --uid 1997 \ --shell /sbin/nologin \ - --home-dir /var/lib/zabbix/ \ + --home-dir ${ZABBIX_USER_HOME_DIR} \ zabbix && \ echo "zabbix ALL=(root) NOPASSWD: /usr/sbin/smartctl" >> /etc/sudoers.d/zabbix && \ - mkdir -p /etc/zabbix && \ - mkdir -p /etc/zabbix/zabbix_agentd.d && \ - mkdir -p /var/lib/zabbix && \ - mkdir -p /var/lib/zabbix/enc && \ - mkdir -p /var/lib/zabbix/enc_internal && \ - mkdir -p /var/lib/zabbix/modules && \ - mkdir -p /var/lib/zabbix/buffer && \ - mkdir -p /var/lib/zabbix/user_scripts && \ - chown --quiet -R zabbix:root /etc/zabbix/ /var/lib/zabbix/ /usr/sbin/zabbix-agent2-plugin/ && \ - chgrp -R 0 /etc/zabbix/ /var/lib/zabbix/ /usr/sbin/zabbix-agent2-plugin/ && \ - chmod -R g=u /etc/zabbix/ /var/lib/zabbix/ /usr/sbin/zabbix-agent2-plugin/ && \ + mkdir -p ${ZABBIX_CONF_DIR} && \ + mkdir -p ${ZABBIX_CONF_DIR}/zabbix_agentd.d && \ + mkdir -p ${ZABBIX_USER_HOME_DIR} && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc_internal && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/modules && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/buffer && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/user_scripts && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ microdnf -y clean all EXPOSE 10050/TCP 31999/TCP -WORKDIR /var/lib/zabbix +WORKDIR ${ZABBIX_USER_HOME_DIR} COPY ["docker-entrypoint.sh", "/usr/bin/"] diff --git a/Dockerfiles/agent2/rhel/docker-entrypoint.sh b/Dockerfiles/agent2/rhel/docker-entrypoint.sh index c8154f33f..ce5b635a7 100755 --- a/Dockerfiles/agent2/rhel/docker-entrypoint.sh +++ b/Dockerfiles/agent2/rhel/docker-entrypoint.sh @@ -16,10 +16,6 @@ fi : ${ZBX_SERVER_PORT:="10051"} # Default directories -# User 'zabbix' home directory -ZABBIX_USER_HOME_DIR="/var/lib/zabbix" -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Internal directory for TLS related files, used when TLS*File specified as plain text values ZABBIX_INTERNAL_ENC_DIR="${ZABBIX_USER_HOME_DIR}/enc_internal" @@ -129,7 +125,7 @@ file_process_from_env() { prepare_zbx_agent_config() { echo "** Preparing Zabbix agent configuration file" - ZBX_AGENT_CONFIG=$ZABBIX_ETC_DIR/zabbix_agent2.conf + ZBX_AGENT_CONFIG=${ZABBIX_CONF_DIR}/zabbix_agent2.conf : ${ZBX_PASSIVESERVERS:=""} : ${ZBX_ACTIVESERVERS:=""} @@ -195,8 +191,8 @@ prepare_zbx_agent_config() { # Please use include to enable Alias feature # update_config_multiple_var $ZBX_AGENT_CONFIG "Alias" ${ZBX_ALIAS} update_config_var $ZBX_AGENT_CONFIG "Timeout" "${ZBX_TIMEOUT}" - update_config_var $ZBX_AGENT_CONFIG "Include" "/etc/zabbix/zabbix_agent2.d/plugins.d/*.conf" - update_config_var $ZBX_AGENT_CONFIG "Include" "/etc/zabbix/zabbix_agentd.d/*.conf" "true" + update_config_var $ZBX_AGENT_CONFIG "Include" "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/*.conf" + update_config_var $ZBX_AGENT_CONFIG "Include" "${ZABBIX_CONF_DIR}/zabbix_agentd.d/*.conf" "true" update_config_var $ZBX_AGENT_CONFIG "UserParameterDir" "$ZABBIX_USER_HOME_DIR/user_scripts" update_config_var $ZBX_AGENT_CONFIG "UnsafeUserParameters" "${ZBX_UNSAFEUSERPARAMETERS}" update_config_var $ZBX_AGENT_CONFIG "TLSConnect" "${ZBX_TLSCONNECT}" @@ -217,9 +213,9 @@ prepare_zbx_agent_config() { prepare_zbx_agent_plugin_config() { echo "** Preparing Zabbix agent plugin configuration files" - update_config_var "/etc/zabbix/zabbix_agent2.d/plugins.d/mongodb.conf" "Plugins.MongoDB.System.Path" "/usr/sbin/zabbix-agent2-plugin/mongodb" - update_config_var "/etc/zabbix/zabbix_agent2.d/plugins.d/postgresql.conf" "Plugins.PostgreSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/postgresql" - update_config_var "/etc/zabbix/zabbix_agent2.d/plugins.d/mssql.conf" "Plugins.MSSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/mssql" + update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/mongodb.conf" "Plugins.MongoDB.System.Path" "/usr/sbin/zabbix-agent2-plugin/mongodb" + update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/postgresql.conf" "Plugins.PostgreSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/postgresql" + update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/mssql.conf" "Plugins.MSSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/mssql" } clear_zbx_env() { diff --git a/Dockerfiles/agent2/ubuntu/Dockerfile b/Dockerfiles/agent2/ubuntu/Dockerfile index b36d5ddae..43574f36c 100644 --- a/Dockerfiles/agent2/ubuntu/Dockerfile +++ b/Dockerfiles/agent2/ubuntu/Dockerfile @@ -12,7 +12,9 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix agent 2 is deployed on a monitoring target to actively monitor local resources and applications" \ @@ -28,7 +30,7 @@ STOPSIGNAL SIGTERM COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent2/sbin/", "/usr/sbin/"] COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/general/bin/*", "/usr/bin/"] -COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent2/conf/", "/etc/zabbix/"] +COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/agent2/conf/", "${ZABBIX_CONF_DIR}/"] RUN --mount=type=cache,target=/var/lib/apt/,sharing=locked \ set -eux && \ @@ -57,26 +59,26 @@ RUN --mount=type=cache,target=/var/lib/apt/,sharing=locked \ -g zabbix \ --uid 1997 \ --shell /sbin/nologin \ - --home-dir /var/lib/zabbix/ \ + --home-dir ${ZABBIX_USER_HOME_DIR} \ zabbix && \ echo "zabbix ALL=(root) NOPASSWD: /usr/sbin/smartctl" >> /etc/sudoers.d/zabbix && \ - mkdir -p /etc/zabbix && \ - mkdir -p /etc/zabbix/zabbix_agentd.d && \ - mkdir -p /var/lib/zabbix && \ - mkdir -p /var/lib/zabbix/enc && \ - mkdir -p /var/lib/zabbix/enc_internal && \ - mkdir -p /var/lib/zabbix/modules && \ - mkdir -p /var/lib/zabbix/buffer && \ - mkdir -p /var/lib/zabbix/user_scripts && \ - chown --quiet -R zabbix:root /etc/zabbix/ /var/lib/zabbix/ /usr/sbin/zabbix-agent2-plugin/ && \ - chgrp -R 0 /etc/zabbix/ /var/lib/zabbix/ /usr/sbin/zabbix-agent2-plugin/ && \ - chmod -R g=u /etc/zabbix/ /var/lib/zabbix/ /usr/sbin/zabbix-agent2-plugin/ && \ + mkdir -p ${ZABBIX_CONF_DIR} && \ + mkdir -p ${ZABBIX_CONF_DIR}/zabbix_agentd.d && \ + mkdir -p ${ZABBIX_USER_HOME_DIR} && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc_internal && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/modules && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/buffer && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/user_scripts && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ apt-get -y autoremove && \ apt-get -y clean EXPOSE 10050/TCP 31999/TCP -WORKDIR /var/lib/zabbix +WORKDIR ${ZABBIX_USER_HOME_DIR} COPY ["docker-entrypoint.sh", "/usr/bin/"] diff --git a/Dockerfiles/agent2/ubuntu/docker-entrypoint.sh b/Dockerfiles/agent2/ubuntu/docker-entrypoint.sh index c8154f33f..ce5b635a7 100755 --- a/Dockerfiles/agent2/ubuntu/docker-entrypoint.sh +++ b/Dockerfiles/agent2/ubuntu/docker-entrypoint.sh @@ -16,10 +16,6 @@ fi : ${ZBX_SERVER_PORT:="10051"} # Default directories -# User 'zabbix' home directory -ZABBIX_USER_HOME_DIR="/var/lib/zabbix" -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Internal directory for TLS related files, used when TLS*File specified as plain text values ZABBIX_INTERNAL_ENC_DIR="${ZABBIX_USER_HOME_DIR}/enc_internal" @@ -129,7 +125,7 @@ file_process_from_env() { prepare_zbx_agent_config() { echo "** Preparing Zabbix agent configuration file" - ZBX_AGENT_CONFIG=$ZABBIX_ETC_DIR/zabbix_agent2.conf + ZBX_AGENT_CONFIG=${ZABBIX_CONF_DIR}/zabbix_agent2.conf : ${ZBX_PASSIVESERVERS:=""} : ${ZBX_ACTIVESERVERS:=""} @@ -195,8 +191,8 @@ prepare_zbx_agent_config() { # Please use include to enable Alias feature # update_config_multiple_var $ZBX_AGENT_CONFIG "Alias" ${ZBX_ALIAS} update_config_var $ZBX_AGENT_CONFIG "Timeout" "${ZBX_TIMEOUT}" - update_config_var $ZBX_AGENT_CONFIG "Include" "/etc/zabbix/zabbix_agent2.d/plugins.d/*.conf" - update_config_var $ZBX_AGENT_CONFIG "Include" "/etc/zabbix/zabbix_agentd.d/*.conf" "true" + update_config_var $ZBX_AGENT_CONFIG "Include" "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/*.conf" + update_config_var $ZBX_AGENT_CONFIG "Include" "${ZABBIX_CONF_DIR}/zabbix_agentd.d/*.conf" "true" update_config_var $ZBX_AGENT_CONFIG "UserParameterDir" "$ZABBIX_USER_HOME_DIR/user_scripts" update_config_var $ZBX_AGENT_CONFIG "UnsafeUserParameters" "${ZBX_UNSAFEUSERPARAMETERS}" update_config_var $ZBX_AGENT_CONFIG "TLSConnect" "${ZBX_TLSCONNECT}" @@ -217,9 +213,9 @@ prepare_zbx_agent_config() { prepare_zbx_agent_plugin_config() { echo "** Preparing Zabbix agent plugin configuration files" - update_config_var "/etc/zabbix/zabbix_agent2.d/plugins.d/mongodb.conf" "Plugins.MongoDB.System.Path" "/usr/sbin/zabbix-agent2-plugin/mongodb" - update_config_var "/etc/zabbix/zabbix_agent2.d/plugins.d/postgresql.conf" "Plugins.PostgreSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/postgresql" - update_config_var "/etc/zabbix/zabbix_agent2.d/plugins.d/mssql.conf" "Plugins.MSSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/mssql" + update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/mongodb.conf" "Plugins.MongoDB.System.Path" "/usr/sbin/zabbix-agent2-plugin/mongodb" + update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/postgresql.conf" "Plugins.PostgreSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/postgresql" + update_config_var "${ZABBIX_CONF_DIR}/zabbix_agent2.d/plugins.d/mssql.conf" "Plugins.MSSQL.System.Path" "/usr/sbin/zabbix-agent2-plugin/mssql" } clear_zbx_env() { diff --git a/Dockerfiles/java-gateway/alpine/Dockerfile b/Dockerfiles/java-gateway/alpine/Dockerfile index 2c2ce7128..4baa2dc0d 100644 --- a/Dockerfiles/java-gateway/alpine/Dockerfile +++ b/Dockerfiles/java-gateway/alpine/Dockerfile @@ -13,7 +13,9 @@ ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ - PATH=${PATH}:/usr/lib/jvm/default-jvm/bin/ JAVA_HOME=/usr/lib/jvm/default-jvm + PATH=${PATH}:/usr/lib/jvm/default-jvm/bin/ JAVA_HOME=/usr/lib/jvm/default-jvm \ + ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix Java Gateway performs native support for monitoring JMX applications" \ @@ -60,19 +62,19 @@ RUN set -eux && \ --uid 1997 \ --ingroup zabbix \ --shell /sbin/nologin \ - --home /var/lib/zabbix/ \ + --home ${ZABBIX_USER_HOME_DIR} \ zabbix && \ - mkdir -p /etc/zabbix/ && \ + mkdir -p ${ZABBIX_CONF_DIR}/ && \ mkdir -p /usr/sbin/zabbix_java/ext_lib/ && \ rm -rf /usr/sbin/zabbix_java/lib/logback.xml && \ - mv /usr/sbin/zabbix_java/lib/logback-console.xml /etc/zabbix/zabbix_java_gateway_logback.xml && \ - chown --quiet -R zabbix:root /etc/zabbix/ /usr/sbin/zabbix_java/ && \ - chgrp -R 0 /etc/zabbix/ /usr/sbin/zabbix_java/ && \ - chmod -R g=u /etc/zabbix/ /usr/sbin/zabbix_java/ + mv /usr/sbin/zabbix_java/lib/logback-console.xml ${ZABBIX_CONF_DIR}/zabbix_java_gateway_logback.xml && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ /usr/sbin/zabbix_java/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ /usr/sbin/zabbix_java/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ /usr/sbin/zabbix_java/ EXPOSE 10052/TCP -WORKDIR /var/lib/zabbix +WORKDIR ${ZABBIX_USER_HOME_DIR} COPY ["conf/usr/sbin/zabbix_java_gateway", "/usr/sbin/"] COPY ["docker-entrypoint.sh", "/usr/bin/"] diff --git a/Dockerfiles/java-gateway/alpine/conf/usr/sbin/zabbix_java_gateway b/Dockerfiles/java-gateway/alpine/conf/usr/sbin/zabbix_java_gateway index 00bab5546..7d9561591 100755 --- a/Dockerfiles/java-gateway/alpine/conf/usr/sbin/zabbix_java_gateway +++ b/Dockerfiles/java-gateway/alpine/conf/usr/sbin/zabbix_java_gateway @@ -2,7 +2,7 @@ JAVA=${JAVA:-"/usr/bin/java"} JAVA_OPTIONS="-server $JAVA_OPTIONS" -JAVA_OPTIONS="$JAVA_OPTIONS -Dlogback.configurationFile=/etc/zabbix/zabbix_java_gateway_logback.xml" +JAVA_OPTIONS="$JAVA_OPTIONS -Dlogback.configurationFile=$ZABBIX_CONF_DIR/zabbix_java_gateway_logback.xml" cd /usr/sbin/zabbix_java diff --git a/Dockerfiles/java-gateway/alpine/docker-entrypoint.sh b/Dockerfiles/java-gateway/alpine/docker-entrypoint.sh index c2bea7442..5aaf16463 100755 --- a/Dockerfiles/java-gateway/alpine/docker-entrypoint.sh +++ b/Dockerfiles/java-gateway/alpine/docker-entrypoint.sh @@ -9,14 +9,10 @@ if [ "${DEBUG_MODE,,}" == "true" ]; then set -o xtrace fi -# Default directories -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" - prepare_java_gateway_config() { echo "** Preparing Zabbix Java Gateway log configuration file" - ZBX_GATEWAY_CONFIG=$ZABBIX_ETC_DIR/zabbix_java_gateway_logback.xml + ZBX_GATEWAY_CONFIG=$ZABBIX_CONF_DIR/zabbix_java_gateway_logback.xml : ${ZBX_DEBUGLEVEL:="info"} diff --git a/Dockerfiles/java-gateway/centos/Dockerfile b/Dockerfiles/java-gateway/centos/Dockerfile index caec81872..994f1d272 100644 --- a/Dockerfiles/java-gateway/centos/Dockerfile +++ b/Dockerfiles/java-gateway/centos/Dockerfile @@ -12,7 +12,9 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix Java Gateway performs native support for monitoring JMX applications" \ @@ -52,21 +54,21 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ -g zabbix \ --uid 1997 \ --shell /sbin/nologin \ - --home-dir /var/lib/zabbix/ \ + --home-dir ${ZABBIX_USER_HOME_DIR} \ zabbix && \ - mkdir -p /etc/zabbix/ && \ + mkdir -p ${ZABBIX_CONF_DIR}/ && \ mkdir -p /usr/sbin/zabbix_java/ && \ mkdir -p /usr/sbin/zabbix_java/ext_lib/ && \ rm -rf /usr/sbin/zabbix_java/lib/logback.xml && \ - mv /usr/sbin/zabbix_java/lib/logback-console.xml /etc/zabbix/zabbix_java_gateway_logback.xml && \ - chown --quiet -R zabbix:root /etc/zabbix/ /usr/sbin/zabbix_java/ && \ - chgrp -R 0 /etc/zabbix/ /usr/sbin/zabbix_java/ && \ - chmod -R g=u /etc/zabbix/ /usr/sbin/zabbix_java/ && \ + mv /usr/sbin/zabbix_java/lib/logback-console.xml ${ZABBIX_CONF_DIR}/zabbix_java_gateway_logback.xml && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ /usr/sbin/zabbix_java/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ /usr/sbin/zabbix_java/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ /usr/sbin/zabbix_java/ && \ microdnf -y clean all EXPOSE 10052/TCP -WORKDIR /var/lib/zabbix +WORKDIR ${ZABBIX_USER_HOME_DIR} COPY ["conf/usr/sbin/zabbix_java_gateway", "/usr/sbin/"] COPY ["docker-entrypoint.sh", "/usr/bin/"] diff --git a/Dockerfiles/java-gateway/centos/conf/usr/sbin/zabbix_java_gateway b/Dockerfiles/java-gateway/centos/conf/usr/sbin/zabbix_java_gateway index 00bab5546..7d9561591 100755 --- a/Dockerfiles/java-gateway/centos/conf/usr/sbin/zabbix_java_gateway +++ b/Dockerfiles/java-gateway/centos/conf/usr/sbin/zabbix_java_gateway @@ -2,7 +2,7 @@ JAVA=${JAVA:-"/usr/bin/java"} JAVA_OPTIONS="-server $JAVA_OPTIONS" -JAVA_OPTIONS="$JAVA_OPTIONS -Dlogback.configurationFile=/etc/zabbix/zabbix_java_gateway_logback.xml" +JAVA_OPTIONS="$JAVA_OPTIONS -Dlogback.configurationFile=$ZABBIX_CONF_DIR/zabbix_java_gateway_logback.xml" cd /usr/sbin/zabbix_java diff --git a/Dockerfiles/java-gateway/centos/docker-entrypoint.sh b/Dockerfiles/java-gateway/centos/docker-entrypoint.sh index c2bea7442..5aaf16463 100755 --- a/Dockerfiles/java-gateway/centos/docker-entrypoint.sh +++ b/Dockerfiles/java-gateway/centos/docker-entrypoint.sh @@ -9,14 +9,10 @@ if [ "${DEBUG_MODE,,}" == "true" ]; then set -o xtrace fi -# Default directories -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" - prepare_java_gateway_config() { echo "** Preparing Zabbix Java Gateway log configuration file" - ZBX_GATEWAY_CONFIG=$ZABBIX_ETC_DIR/zabbix_java_gateway_logback.xml + ZBX_GATEWAY_CONFIG=$ZABBIX_CONF_DIR/zabbix_java_gateway_logback.xml : ${ZBX_DEBUGLEVEL:="info"} diff --git a/Dockerfiles/java-gateway/ol/Dockerfile b/Dockerfiles/java-gateway/ol/Dockerfile index a7d51c10b..9ac0dc3cc 100644 --- a/Dockerfiles/java-gateway/ol/Dockerfile +++ b/Dockerfiles/java-gateway/ol/Dockerfile @@ -12,7 +12,9 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix Java Gateway performs native support for monitoring JMX applications" \ @@ -52,21 +54,21 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ -g zabbix \ --uid 1997 \ --shell /sbin/nologin \ - --home-dir /var/lib/zabbix/ \ + --home-dir ${ZABBIX_USER_HOME_DIR} \ zabbix && \ - mkdir -p /etc/zabbix/ && \ + mkdir -p ${ZABBIX_CONF_DIR}/ && \ mkdir -p /usr/sbin/zabbix_java/ && \ mkdir -p /usr/sbin/zabbix_java/ext_lib/ && \ rm -rf /usr/sbin/zabbix_java/lib/logback.xml && \ - mv /usr/sbin/zabbix_java/lib/logback-console.xml /etc/zabbix/zabbix_java_gateway_logback.xml && \ - chown --quiet -R zabbix:root /etc/zabbix/ /usr/sbin/zabbix_java/ && \ - chgrp -R 0 /etc/zabbix/ /usr/sbin/zabbix_java/ && \ - chmod -R g=u /etc/zabbix/ /usr/sbin/zabbix_java/ && \ + mv /usr/sbin/zabbix_java/lib/logback-console.xml ${ZABBIX_CONF_DIR}/zabbix_java_gateway_logback.xml && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ /usr/sbin/zabbix_java/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ /usr/sbin/zabbix_java/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ /usr/sbin/zabbix_java/ && \ microdnf -y clean all EXPOSE 10052/TCP -WORKDIR /var/lib/zabbix +WORKDIR ${ZABBIX_USER_HOME_DIR} COPY ["conf/usr/sbin/zabbix_java_gateway", "/usr/sbin/"] COPY ["docker-entrypoint.sh", "/usr/bin/"] diff --git a/Dockerfiles/java-gateway/ol/conf/usr/sbin/zabbix_java_gateway b/Dockerfiles/java-gateway/ol/conf/usr/sbin/zabbix_java_gateway index 00bab5546..7d9561591 100755 --- a/Dockerfiles/java-gateway/ol/conf/usr/sbin/zabbix_java_gateway +++ b/Dockerfiles/java-gateway/ol/conf/usr/sbin/zabbix_java_gateway @@ -2,7 +2,7 @@ JAVA=${JAVA:-"/usr/bin/java"} JAVA_OPTIONS="-server $JAVA_OPTIONS" -JAVA_OPTIONS="$JAVA_OPTIONS -Dlogback.configurationFile=/etc/zabbix/zabbix_java_gateway_logback.xml" +JAVA_OPTIONS="$JAVA_OPTIONS -Dlogback.configurationFile=$ZABBIX_CONF_DIR/zabbix_java_gateway_logback.xml" cd /usr/sbin/zabbix_java diff --git a/Dockerfiles/java-gateway/ol/docker-entrypoint.sh b/Dockerfiles/java-gateway/ol/docker-entrypoint.sh index c2bea7442..5aaf16463 100755 --- a/Dockerfiles/java-gateway/ol/docker-entrypoint.sh +++ b/Dockerfiles/java-gateway/ol/docker-entrypoint.sh @@ -9,14 +9,10 @@ if [ "${DEBUG_MODE,,}" == "true" ]; then set -o xtrace fi -# Default directories -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" - prepare_java_gateway_config() { echo "** Preparing Zabbix Java Gateway log configuration file" - ZBX_GATEWAY_CONFIG=$ZABBIX_ETC_DIR/zabbix_java_gateway_logback.xml + ZBX_GATEWAY_CONFIG=$ZABBIX_CONF_DIR/zabbix_java_gateway_logback.xml : ${ZBX_DEBUGLEVEL:="info"} diff --git a/Dockerfiles/java-gateway/rhel/Dockerfile b/Dockerfiles/java-gateway/rhel/Dockerfile index 6cbe2898e..8d8a9fded 100644 --- a/Dockerfiles/java-gateway/rhel/Dockerfile +++ b/Dockerfiles/java-gateway/rhel/Dockerfile @@ -14,7 +14,9 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL description="Zabbix Java Gateway performs native support for monitoring JMX applications" \ maintainer="alexey.pustovalov@zabbix.com" \ @@ -72,21 +74,21 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ -g zabbix \ --uid 1997 \ --shell /sbin/nologin \ - --home-dir /var/lib/zabbix/ \ + --home-dir ${ZABBIX_USER_HOME_DIR} \ zabbix && \ - mkdir -p /etc/zabbix/ && \ + mkdir -p ${ZABBIX_CONF_DIR}/ && \ mkdir -p /usr/sbin/zabbix_java/ && \ mkdir -p /usr/sbin/zabbix_java/ext_lib/ && \ rm -rf /usr/sbin/zabbix_java/lib/logback.xml && \ - mv /usr/sbin/zabbix_java/lib/logback-console.xml /etc/zabbix/zabbix_java_gateway_logback.xml && \ - chown --quiet -R zabbix:root /etc/zabbix/ /usr/sbin/zabbix_java/ && \ - chgrp -R 0 /etc/zabbix/ /usr/sbin/zabbix_java/ && \ - chmod -R g=u /etc/zabbix/ /usr/sbin/zabbix_java/ && \ + mv /usr/sbin/zabbix_java/lib/logback-console.xml ${ZABBIX_CONF_DIR}/zabbix_java_gateway_logback.xml && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ /usr/sbin/zabbix_java/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ /usr/sbin/zabbix_java/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ /usr/sbin/zabbix_java/ && \ microdnf -y clean all EXPOSE 10052/TCP -WORKDIR /var/lib/zabbix +WORKDIR ${ZABBIX_USER_HOME_DIR} COPY ["conf/usr/sbin/zabbix_java_gateway", "/usr/sbin/"] COPY ["docker-entrypoint.sh", "/usr/bin/"] diff --git a/Dockerfiles/java-gateway/rhel/conf/usr/sbin/zabbix_java_gateway b/Dockerfiles/java-gateway/rhel/conf/usr/sbin/zabbix_java_gateway index 00bab5546..7d9561591 100755 --- a/Dockerfiles/java-gateway/rhel/conf/usr/sbin/zabbix_java_gateway +++ b/Dockerfiles/java-gateway/rhel/conf/usr/sbin/zabbix_java_gateway @@ -2,7 +2,7 @@ JAVA=${JAVA:-"/usr/bin/java"} JAVA_OPTIONS="-server $JAVA_OPTIONS" -JAVA_OPTIONS="$JAVA_OPTIONS -Dlogback.configurationFile=/etc/zabbix/zabbix_java_gateway_logback.xml" +JAVA_OPTIONS="$JAVA_OPTIONS -Dlogback.configurationFile=$ZABBIX_CONF_DIR/zabbix_java_gateway_logback.xml" cd /usr/sbin/zabbix_java diff --git a/Dockerfiles/java-gateway/rhel/docker-entrypoint.sh b/Dockerfiles/java-gateway/rhel/docker-entrypoint.sh index c2bea7442..5aaf16463 100755 --- a/Dockerfiles/java-gateway/rhel/docker-entrypoint.sh +++ b/Dockerfiles/java-gateway/rhel/docker-entrypoint.sh @@ -9,14 +9,10 @@ if [ "${DEBUG_MODE,,}" == "true" ]; then set -o xtrace fi -# Default directories -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" - prepare_java_gateway_config() { echo "** Preparing Zabbix Java Gateway log configuration file" - ZBX_GATEWAY_CONFIG=$ZABBIX_ETC_DIR/zabbix_java_gateway_logback.xml + ZBX_GATEWAY_CONFIG=$ZABBIX_CONF_DIR/zabbix_java_gateway_logback.xml : ${ZBX_DEBUGLEVEL:="info"} diff --git a/Dockerfiles/java-gateway/ubuntu/Dockerfile b/Dockerfiles/java-gateway/ubuntu/Dockerfile index 240b37761..0410025ef 100644 --- a/Dockerfiles/java-gateway/ubuntu/Dockerfile +++ b/Dockerfiles/java-gateway/ubuntu/Dockerfile @@ -12,7 +12,9 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix Java Gateway performs native support for monitoring JMX applications" \ @@ -47,22 +49,22 @@ RUN --mount=type=cache,target=/var/lib/apt/,sharing=locked \ -g zabbix \ --uid 1997 \ --shell /sbin/nologin \ - --home-dir /var/lib/zabbix/ \ + --home-dir ${ZABBIX_USER_HOME_DIR} \ zabbix && \ - mkdir -p /etc/zabbix/ && \ + mkdir -p ${ZABBIX_CONF_DIR}/ && \ mkdir -p /usr/sbin/zabbix_java/ && \ mkdir -p /usr/sbin/zabbix_java/ext_lib/ && \ rm -rf /usr/sbin/zabbix_java/lib/logback.xml && \ - mv /usr/sbin/zabbix_java/lib/logback-console.xml /etc/zabbix/zabbix_java_gateway_logback.xml && \ - chown --quiet -R zabbix:root /etc/zabbix/ /usr/sbin/zabbix_java/ && \ - chgrp -R 0 /etc/zabbix/ /usr/sbin/zabbix_java/ && \ - chmod -R g=u /etc/zabbix/ /usr/sbin/zabbix_java/ && \ + mv /usr/sbin/zabbix_java/lib/logback-console.xml ${ZABBIX_CONF_DIR}/zabbix_java_gateway_logback.xml && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ /usr/sbin/zabbix_java/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ /usr/sbin/zabbix_java/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ /usr/sbin/zabbix_java/ && \ apt-get -y autoremove && \ apt-get -y clean EXPOSE 10052/TCP -WORKDIR /var/lib/zabbix +WORKDIR ${ZABBIX_USER_HOME_DIR} COPY ["conf/usr/sbin/zabbix_java_gateway", "/usr/sbin/"] COPY ["docker-entrypoint.sh", "/usr/bin/"] diff --git a/Dockerfiles/java-gateway/ubuntu/conf/usr/sbin/zabbix_java_gateway b/Dockerfiles/java-gateway/ubuntu/conf/usr/sbin/zabbix_java_gateway index 00bab5546..7d9561591 100755 --- a/Dockerfiles/java-gateway/ubuntu/conf/usr/sbin/zabbix_java_gateway +++ b/Dockerfiles/java-gateway/ubuntu/conf/usr/sbin/zabbix_java_gateway @@ -2,7 +2,7 @@ JAVA=${JAVA:-"/usr/bin/java"} JAVA_OPTIONS="-server $JAVA_OPTIONS" -JAVA_OPTIONS="$JAVA_OPTIONS -Dlogback.configurationFile=/etc/zabbix/zabbix_java_gateway_logback.xml" +JAVA_OPTIONS="$JAVA_OPTIONS -Dlogback.configurationFile=$ZABBIX_CONF_DIR/zabbix_java_gateway_logback.xml" cd /usr/sbin/zabbix_java diff --git a/Dockerfiles/java-gateway/ubuntu/docker-entrypoint.sh b/Dockerfiles/java-gateway/ubuntu/docker-entrypoint.sh index c2bea7442..5aaf16463 100755 --- a/Dockerfiles/java-gateway/ubuntu/docker-entrypoint.sh +++ b/Dockerfiles/java-gateway/ubuntu/docker-entrypoint.sh @@ -9,14 +9,10 @@ if [ "${DEBUG_MODE,,}" == "true" ]; then set -o xtrace fi -# Default directories -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" - prepare_java_gateway_config() { echo "** Preparing Zabbix Java Gateway log configuration file" - ZBX_GATEWAY_CONFIG=$ZABBIX_ETC_DIR/zabbix_java_gateway_logback.xml + ZBX_GATEWAY_CONFIG=$ZABBIX_CONF_DIR/zabbix_java_gateway_logback.xml : ${ZBX_DEBUGLEVEL:="info"} diff --git a/Dockerfiles/proxy-mysql/alpine/Dockerfile b/Dockerfiles/proxy-mysql/alpine/Dockerfile index b1b6ca5aa..8189a9da8 100644 --- a/Dockerfiles/proxy-mysql/alpine/Dockerfile +++ b/Dockerfiles/proxy-mysql/alpine/Dockerfile @@ -15,6 +15,8 @@ ENV TERM=xterm \ ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ MIBDIRS=/usr/share/snmp/mibs:/var/lib/zabbix/mibs MIBS=+ALL \ NMAP_PRIVILEGED="" \ + ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \ + ZABBIX_CONF_DIR="/etc/zabbix" \ ZBX_FPINGLOCATION="/usr/sbin/fping" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ @@ -31,7 +33,7 @@ STOPSIGNAL SIGTERM COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/proxy/sbin/zabbix_proxy", "/usr/sbin/zabbix_proxy"] COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/general/bin/*", "/usr/bin/"] -COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/proxy/conf/", "/etc/zabbix/"] +COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/proxy/conf/", "${ZABBIX_CONF_DIR}/"] COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/proxy/database/mysql/", "/usr/share/doc/zabbix-proxy-mysql/"] RUN set -eux && \ @@ -71,33 +73,33 @@ RUN set -eux && \ --uid 1997 \ --ingroup zabbix \ --shell /sbin/nologin \ - --home /var/lib/zabbix/ \ + --home ${ZABBIX_USER_HOME_DIR} \ zabbix && \ chgrp zabbix /usr/bin/nmap && \ setcap cap_net_raw+eip /usr/bin/nmap && \ - mkdir -p /etc/zabbix && \ - mkdir -p /var/lib/zabbix && \ - mkdir -p /var/lib/zabbix/enc && \ - mkdir -p /var/lib/zabbix/enc_internal && \ + mkdir -p ${ZABBIX_CONF_DIR} && \ + mkdir -p ${ZABBIX_USER_HOME_DIR} && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc_internal && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/mibs && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/modules && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/snmptraps && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/ssh_keys && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/ssl && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/ssl/certs && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/ssl/keys && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/ssl/ssl_ca && \ mkdir -p /usr/lib/zabbix/externalscripts && \ - mkdir -p /var/lib/zabbix/mibs && \ - mkdir -p /var/lib/zabbix/modules && \ - mkdir -p /var/lib/zabbix/snmptraps && \ - mkdir -p /var/lib/zabbix/ssh_keys && \ - mkdir -p /var/lib/zabbix/ssl && \ - mkdir -p /var/lib/zabbix/ssl/certs && \ - mkdir -p /var/lib/zabbix/ssl/keys && \ - mkdir -p /var/lib/zabbix/ssl/ssl_ca && \ mkdir -p /usr/share/doc/zabbix-proxy-mysql && \ - chown --quiet -R zabbix:root /etc/zabbix/ /var/lib/zabbix/ && \ - chgrp -R 0 /etc/zabbix/ /var/lib/zabbix/ && \ - chmod -R g=u /etc/zabbix/ /var/lib/zabbix/ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ EXPOSE 10051/TCP -WORKDIR /var/lib/zabbix +WORKDIR ${ZABBIX_USER_HOME_DIR} -VOLUME ["/var/lib/zabbix/snmptraps"] +VOLUME ["${ZABBIX_USER_HOME_DIR}/snmptraps"] COPY ["docker-entrypoint.sh", "/usr/bin/"] diff --git a/Dockerfiles/proxy-mysql/alpine/docker-entrypoint.sh b/Dockerfiles/proxy-mysql/alpine/docker-entrypoint.sh index b5eaee907..c183a8915 100755 --- a/Dockerfiles/proxy-mysql/alpine/docker-entrypoint.sh +++ b/Dockerfiles/proxy-mysql/alpine/docker-entrypoint.sh @@ -13,10 +13,6 @@ fi : ${ZBX_SERVER_HOST:="zabbix-server"} # Default directories -# User 'zabbix' home directory -ZABBIX_USER_HOME_DIR="/var/lib/zabbix" -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Internal directory for TLS related files, used when TLS*File specified as plain text values ZABBIX_INTERNAL_ENC_DIR="${ZABBIX_USER_HOME_DIR}/enc_internal" @@ -352,7 +348,7 @@ create_db_schema_mysql() { update_zbx_config() { echo "** Preparing Zabbix proxy configuration file" - ZBX_CONFIG=$ZABBIX_ETC_DIR/zabbix_proxy.conf + ZBX_CONFIG=${ZABBIX_CONF_DIR}/zabbix_proxy.conf update_config_var $ZBX_CONFIG "ProxyMode" "${ZBX_PROXYMODE}" update_config_var $ZBX_CONFIG "Server" "${ZBX_SERVER_HOST}" @@ -476,7 +472,6 @@ update_zbx_config() { update_config_var $ZBX_CONFIG "UnavailableDelay" "${ZBX_UNAVAILABLEDELAY}" update_config_var $ZBX_CONFIG "UnreachableDelay" "${ZBX_UNREACHABLEDELAY}" - update_config_var $ZBX_CONFIG "AlertScriptsPath" "/usr/lib/zabbix/alertscripts" update_config_var $ZBX_CONFIG "ExternalScripts" "/usr/lib/zabbix/externalscripts" update_config_var $ZBX_CONFIG "FpingLocation" "${ZBX_FPINGLOCATION}" diff --git a/Dockerfiles/proxy-mysql/centos/Dockerfile b/Dockerfiles/proxy-mysql/centos/Dockerfile index ee52437de..e4449d671 100644 --- a/Dockerfiles/proxy-mysql/centos/Dockerfile +++ b/Dockerfiles/proxy-mysql/centos/Dockerfile @@ -15,6 +15,8 @@ ENV TERM=xterm \ ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ MIBDIRS=/usr/share/snmp/mibs:/var/lib/zabbix/mibs MIBS=+ALL \ NMAP_PRIVILEGED="" \ + ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \ + ZABBIX_CONF_DIR="/etc/zabbix" \ ZBX_FPINGLOCATION="/usr/sbin/fping" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ @@ -31,7 +33,7 @@ STOPSIGNAL SIGTERM COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/proxy/sbin/zabbix_proxy", "/usr/sbin/zabbix_proxy"] COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/general/bin/*", "/usr/bin/"] -COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/proxy/conf/", "/etc/zabbix/"] +COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/proxy/conf/", "${ZABBIX_CONF_DIR}/"] COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/proxy/database/mysql/", "/usr/share/doc/zabbix-proxy-mysql/"] RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ @@ -90,34 +92,34 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ -g zabbix \ --uid 1997 \ --shell /sbin/nologin \ - --home-dir /var/lib/zabbix/ \ + --home-dir ${ZABBIX_USER_HOME_DIR} \ zabbix && \ chgrp zabbix /usr/bin/nmap && \ setcap cap_net_raw+eip /usr/bin/nmap && \ - mkdir -p /etc/zabbix && \ - mkdir -p /var/lib/zabbix && \ - mkdir -p /var/lib/zabbix/enc && \ - mkdir -p /var/lib/zabbix/enc_internal && \ + mkdir -p ${ZABBIX_CONF_DIR} && \ + mkdir -p ${ZABBIX_USER_HOME_DIR} && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc_internal && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/mibs && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/modules && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/snmptraps && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/ssh_keys && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/ssl && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/ssl/certs && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/ssl/keys && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/ssl/ssl_ca && \ mkdir -p /usr/lib/zabbix/externalscripts && \ - mkdir -p /var/lib/zabbix/mibs && \ - mkdir -p /var/lib/zabbix/modules && \ - mkdir -p /var/lib/zabbix/snmptraps && \ - mkdir -p /var/lib/zabbix/ssh_keys && \ - mkdir -p /var/lib/zabbix/ssl && \ - mkdir -p /var/lib/zabbix/ssl/certs && \ - mkdir -p /var/lib/zabbix/ssl/keys && \ - mkdir -p /var/lib/zabbix/ssl/ssl_ca && \ mkdir -p /usr/share/doc/zabbix-proxy-mysql && \ - chown --quiet -R zabbix:root /etc/zabbix/ /var/lib/zabbix/ && \ - chgrp -R 0 /etc/zabbix/ /var/lib/zabbix/ && \ - chmod -R g=u /etc/zabbix/ /var/lib/zabbix/ && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ microdnf -y clean all EXPOSE 10051/TCP -WORKDIR /var/lib/zabbix +WORKDIR ${ZABBIX_USER_HOME_DIR} -VOLUME ["/var/lib/zabbix/snmptraps"] +VOLUME ["${ZABBIX_USER_HOME_DIR}/snmptraps"] COPY ["docker-entrypoint.sh", "/usr/bin/"] diff --git a/Dockerfiles/proxy-mysql/centos/docker-entrypoint.sh b/Dockerfiles/proxy-mysql/centos/docker-entrypoint.sh index 8f1ca1a12..b27b0f781 100755 --- a/Dockerfiles/proxy-mysql/centos/docker-entrypoint.sh +++ b/Dockerfiles/proxy-mysql/centos/docker-entrypoint.sh @@ -13,10 +13,6 @@ fi : ${ZBX_SERVER_HOST:="zabbix-server"} # Default directories -# User 'zabbix' home directory -ZABBIX_USER_HOME_DIR="/var/lib/zabbix" -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Internal directory for TLS related files, used when TLS*File specified as plain text values ZABBIX_INTERNAL_ENC_DIR="${ZABBIX_USER_HOME_DIR}/enc_internal" @@ -349,7 +345,7 @@ create_db_schema_mysql() { update_zbx_config() { echo "** Preparing Zabbix proxy configuration file" - ZBX_CONFIG=$ZABBIX_ETC_DIR/zabbix_proxy.conf + ZBX_CONFIG=${ZABBIX_CONF_DIR}/zabbix_proxy.conf update_config_var $ZBX_CONFIG "ProxyMode" "${ZBX_PROXYMODE}" update_config_var $ZBX_CONFIG "Server" "${ZBX_SERVER_HOST}" @@ -473,7 +469,6 @@ update_zbx_config() { update_config_var $ZBX_CONFIG "UnavailableDelay" "${ZBX_UNAVAILABLEDELAY}" update_config_var $ZBX_CONFIG "UnreachableDelay" "${ZBX_UNREACHABLEDELAY}" - update_config_var $ZBX_CONFIG "AlertScriptsPath" "/usr/lib/zabbix/alertscripts" update_config_var $ZBX_CONFIG "ExternalScripts" "/usr/lib/zabbix/externalscripts" update_config_var $ZBX_CONFIG "FpingLocation" "${ZBX_FPINGLOCATION}" diff --git a/Dockerfiles/proxy-mysql/ol/Dockerfile b/Dockerfiles/proxy-mysql/ol/Dockerfile index d27446b65..dce9b6384 100644 --- a/Dockerfiles/proxy-mysql/ol/Dockerfile +++ b/Dockerfiles/proxy-mysql/ol/Dockerfile @@ -14,7 +14,9 @@ ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ MIBDIRS=/usr/share/snmp/mibs:/var/lib/zabbix/mibs MIBS=+ALL \ - NMAP_PRIVILEGED=""\ + NMAP_PRIVILEGED="" \ + ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \ + ZABBIX_CONF_DIR="/etc/zabbix" \ ZBX_FPINGLOCATION="/usr/sbin/fping" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ @@ -31,7 +33,7 @@ STOPSIGNAL SIGTERM COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/proxy/sbin/zabbix_proxy", "/usr/sbin/zabbix_proxy"] COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/general/bin/*", "/usr/bin/"] -COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/proxy/conf/", "/etc/zabbix/"] +COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/proxy/conf/", "${ZABBIX_CONF_DIR}/"] COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/proxy/database/mysql/", "/usr/share/doc/zabbix-proxy-mysql/"] COPY ["conf/etc/yum.repos.d/oracle-epel-ol9.repo", "/etc/yum.repos.d/oracle-epel-ol9.repo"] @@ -77,34 +79,34 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ -g zabbix \ --uid 1997 \ --shell /sbin/nologin \ - --home-dir /var/lib/zabbix/ \ + --home-dir ${ZABBIX_USER_HOME_DIR} \ zabbix && \ chgrp zabbix /usr/bin/nmap && \ setcap cap_net_raw+eip /usr/bin/nmap && \ - mkdir -p /etc/zabbix && \ - mkdir -p /var/lib/zabbix && \ - mkdir -p /var/lib/zabbix/enc && \ - mkdir -p /var/lib/zabbix/enc_internal && \ + mkdir -p ${ZABBIX_CONF_DIR} && \ + mkdir -p ${ZABBIX_USER_HOME_DIR} && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc_internal && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/mibs && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/modules && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/snmptraps && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/ssh_keys && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/ssl && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/ssl/certs && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/ssl/keys && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/ssl/ssl_ca && \ mkdir -p /usr/lib/zabbix/externalscripts && \ - mkdir -p /var/lib/zabbix/mibs && \ - mkdir -p /var/lib/zabbix/modules && \ - mkdir -p /var/lib/zabbix/snmptraps && \ - mkdir -p /var/lib/zabbix/ssh_keys && \ - mkdir -p /var/lib/zabbix/ssl && \ - mkdir -p /var/lib/zabbix/ssl/certs && \ - mkdir -p /var/lib/zabbix/ssl/keys && \ - mkdir -p /var/lib/zabbix/ssl/ssl_ca && \ mkdir -p /usr/share/doc/zabbix-proxy-mysql && \ - chown --quiet -R zabbix:root /etc/zabbix/ /var/lib/zabbix/ && \ - chgrp -R 0 /etc/zabbix/ /var/lib/zabbix/ && \ - chmod -R g=u /etc/zabbix/ /var/lib/zabbix/ && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ microdnf -y clean all EXPOSE 10051/TCP -WORKDIR /var/lib/zabbix +WORKDIR ${ZABBIX_USER_HOME_DIR} -VOLUME ["/var/lib/zabbix/snmptraps"] +VOLUME ["${ZABBIX_USER_HOME_DIR}/snmptraps"] COPY ["docker-entrypoint.sh", "/usr/bin/"] diff --git a/Dockerfiles/proxy-mysql/ol/docker-entrypoint.sh b/Dockerfiles/proxy-mysql/ol/docker-entrypoint.sh index 8f1ca1a12..b27b0f781 100755 --- a/Dockerfiles/proxy-mysql/ol/docker-entrypoint.sh +++ b/Dockerfiles/proxy-mysql/ol/docker-entrypoint.sh @@ -13,10 +13,6 @@ fi : ${ZBX_SERVER_HOST:="zabbix-server"} # Default directories -# User 'zabbix' home directory -ZABBIX_USER_HOME_DIR="/var/lib/zabbix" -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Internal directory for TLS related files, used when TLS*File specified as plain text values ZABBIX_INTERNAL_ENC_DIR="${ZABBIX_USER_HOME_DIR}/enc_internal" @@ -349,7 +345,7 @@ create_db_schema_mysql() { update_zbx_config() { echo "** Preparing Zabbix proxy configuration file" - ZBX_CONFIG=$ZABBIX_ETC_DIR/zabbix_proxy.conf + ZBX_CONFIG=${ZABBIX_CONF_DIR}/zabbix_proxy.conf update_config_var $ZBX_CONFIG "ProxyMode" "${ZBX_PROXYMODE}" update_config_var $ZBX_CONFIG "Server" "${ZBX_SERVER_HOST}" @@ -473,7 +469,6 @@ update_zbx_config() { update_config_var $ZBX_CONFIG "UnavailableDelay" "${ZBX_UNAVAILABLEDELAY}" update_config_var $ZBX_CONFIG "UnreachableDelay" "${ZBX_UNREACHABLEDELAY}" - update_config_var $ZBX_CONFIG "AlertScriptsPath" "/usr/lib/zabbix/alertscripts" update_config_var $ZBX_CONFIG "ExternalScripts" "/usr/lib/zabbix/externalscripts" update_config_var $ZBX_CONFIG "FpingLocation" "${ZBX_FPINGLOCATION}" diff --git a/Dockerfiles/proxy-mysql/rhel/Dockerfile b/Dockerfiles/proxy-mysql/rhel/Dockerfile index ebd4de083..afb258834 100644 --- a/Dockerfiles/proxy-mysql/rhel/Dockerfile +++ b/Dockerfiles/proxy-mysql/rhel/Dockerfile @@ -17,6 +17,8 @@ ENV TERM=xterm \ ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ MIBDIRS=/usr/share/snmp/mibs:/var/lib/zabbix/mibs MIBS=+ALL \ NMAP_PRIVILEGED="" \ + ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \ + ZABBIX_CONF_DIR="/etc/zabbix" \ ZBX_FPINGLOCATION="/usr/sbin/fping" LABEL description="Zabbix proxy with MySQL database support" \ @@ -50,7 +52,7 @@ STOPSIGNAL SIGTERM COPY ["licenses", "/licenses"] COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/proxy/sbin/zabbix_proxy", "/usr/sbin/zabbix_proxy"] COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/general/bin/*", "/usr/bin/"] -COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/proxy/conf/", "/etc/zabbix/"] +COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/proxy/conf/", "${ZABBIX_CONF_DIR}/"] COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/proxy/database/mysql/", "/usr/share/doc/zabbix-proxy-mysql/"] RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ @@ -119,35 +121,35 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ -g zabbix \ --uid 1997 \ --shell /sbin/nologin \ - --home-dir /var/lib/zabbix/ \ + --home-dir ${ZABBIX_USER_HOME_DIR} \ zabbix && \ chgrp zabbix /usr/bin/nmap && \ setcap cap_net_raw+eip /usr/bin/nmap && \ - mkdir -p /etc/zabbix && \ - mkdir -p /var/lib/zabbix && \ - mkdir -p /var/lib/zabbix/enc && \ - mkdir -p /var/lib/zabbix/enc_internal && \ + mkdir -p ${ZABBIX_CONF_DIR} && \ + mkdir -p ${ZABBIX_USER_HOME_DIR} && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc_internal && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/mibs && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/modules && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/snmptraps && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/ssh_keys && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/ssl && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/ssl/certs && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/ssl/keys && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/ssl/ssl_ca && \ mkdir -p /usr/lib/zabbix/externalscripts && \ - mkdir -p /var/lib/zabbix/mibs && \ - mkdir -p /var/lib/zabbix/modules && \ - mkdir -p /var/lib/zabbix/snmptraps && \ - mkdir -p /var/lib/zabbix/ssh_keys && \ - mkdir -p /var/lib/zabbix/ssl && \ - mkdir -p /var/lib/zabbix/ssl/certs && \ - mkdir -p /var/lib/zabbix/ssl/keys && \ - mkdir -p /var/lib/zabbix/ssl/ssl_ca && \ mkdir -p /usr/share/doc/zabbix-proxy-mysql && \ - chown --quiet -R zabbix:root /etc/zabbix/ /var/lib/zabbix/ && \ - chgrp -R 0 /etc/zabbix/ /var/lib/zabbix/ && \ - chmod -R g=u /etc/zabbix/ /var/lib/zabbix/ && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ microdnf -y clean all EXPOSE 10051/TCP -WORKDIR /var/lib/zabbix +WORKDIR ${ZABBIX_USER_HOME_DIR} -VOLUME ["/var/lib/zabbix/snmptraps"] +VOLUME ["${ZABBIX_USER_HOME_DIR}/snmptraps"] COPY ["docker-entrypoint.sh", "/usr/bin/"] diff --git a/Dockerfiles/proxy-mysql/rhel/docker-entrypoint.sh b/Dockerfiles/proxy-mysql/rhel/docker-entrypoint.sh index 8f1ca1a12..b27b0f781 100755 --- a/Dockerfiles/proxy-mysql/rhel/docker-entrypoint.sh +++ b/Dockerfiles/proxy-mysql/rhel/docker-entrypoint.sh @@ -13,10 +13,6 @@ fi : ${ZBX_SERVER_HOST:="zabbix-server"} # Default directories -# User 'zabbix' home directory -ZABBIX_USER_HOME_DIR="/var/lib/zabbix" -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Internal directory for TLS related files, used when TLS*File specified as plain text values ZABBIX_INTERNAL_ENC_DIR="${ZABBIX_USER_HOME_DIR}/enc_internal" @@ -349,7 +345,7 @@ create_db_schema_mysql() { update_zbx_config() { echo "** Preparing Zabbix proxy configuration file" - ZBX_CONFIG=$ZABBIX_ETC_DIR/zabbix_proxy.conf + ZBX_CONFIG=${ZABBIX_CONF_DIR}/zabbix_proxy.conf update_config_var $ZBX_CONFIG "ProxyMode" "${ZBX_PROXYMODE}" update_config_var $ZBX_CONFIG "Server" "${ZBX_SERVER_HOST}" @@ -473,7 +469,6 @@ update_zbx_config() { update_config_var $ZBX_CONFIG "UnavailableDelay" "${ZBX_UNAVAILABLEDELAY}" update_config_var $ZBX_CONFIG "UnreachableDelay" "${ZBX_UNREACHABLEDELAY}" - update_config_var $ZBX_CONFIG "AlertScriptsPath" "/usr/lib/zabbix/alertscripts" update_config_var $ZBX_CONFIG "ExternalScripts" "/usr/lib/zabbix/externalscripts" update_config_var $ZBX_CONFIG "FpingLocation" "${ZBX_FPINGLOCATION}" diff --git a/Dockerfiles/proxy-mysql/ubuntu/Dockerfile b/Dockerfiles/proxy-mysql/ubuntu/Dockerfile index bd8a360e3..5b23ebb11 100644 --- a/Dockerfiles/proxy-mysql/ubuntu/Dockerfile +++ b/Dockerfiles/proxy-mysql/ubuntu/Dockerfile @@ -14,7 +14,9 @@ ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ MIBDIRS=/var/lib/mibs/ietf:/var/lib/mibs/iana:/usr/share/snmp/mibs:/var/lib/zabbix/mibs MIBS=+ALL \ - NMAP_PRIVILEGED="" \ + NMAP_PRIVILEGED="" \ + ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \ + ZABBIX_CONF_DIR="/etc/zabbix" \ ZBX_FPINGLOCATION="/usr/bin/fping" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ @@ -31,7 +33,7 @@ STOPSIGNAL SIGTERM COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/proxy/sbin/zabbix_proxy", "/usr/sbin/zabbix_proxy"] COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/general/bin/*", "/usr/bin/"] -COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/proxy/conf/", "/etc/zabbix/"] +COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/proxy/conf/", "${ZABBIX_CONF_DIR}/"] COPY --from=builder ["/tmp/zabbix-${ZBX_VERSION}-output/proxy/database/mysql/", "/usr/share/doc/zabbix-proxy-mysql/"] RUN --mount=type=cache,target=/var/lib/apt/,sharing=locked \ @@ -73,35 +75,35 @@ RUN --mount=type=cache,target=/var/lib/apt/,sharing=locked \ -g zabbix \ --uid 1997 \ --shell /sbin/nologin \ - --home-dir /var/lib/zabbix/ \ + --home-dir ${ZABBIX_USER_HOME_DIR} \ zabbix && \ chgrp zabbix /usr/bin/nmap && \ setcap cap_net_raw+eip /usr/bin/nmap && \ - mkdir -p /etc/zabbix && \ - mkdir -p /var/lib/zabbix && \ - mkdir -p /var/lib/zabbix/enc && \ - mkdir -p /var/lib/zabbix/enc_internal && \ + mkdir -p ${ZABBIX_CONF_DIR} && \ + mkdir -p ${ZABBIX_USER_HOME_DIR} && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/enc_internal && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/mibs && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/modules && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/snmptraps && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/ssh_keys && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/ssl && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/ssl/certs && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/ssl/keys && \ + mkdir -p ${ZABBIX_USER_HOME_DIR}/ssl/ssl_ca && \ mkdir -p /usr/lib/zabbix/externalscripts && \ - mkdir -p /var/lib/zabbix/mibs && \ - mkdir -p /var/lib/zabbix/modules && \ - mkdir -p /var/lib/zabbix/snmptraps && \ - mkdir -p /var/lib/zabbix/ssh_keys && \ - mkdir -p /var/lib/zabbix/ssl && \ - mkdir -p /var/lib/zabbix/ssl/certs && \ - mkdir -p /var/lib/zabbix/ssl/keys && \ - mkdir -p /var/lib/zabbix/ssl/ssl_ca && \ mkdir -p /usr/share/doc/zabbix-proxy-mysql && \ - chown --quiet -R zabbix:root /etc/zabbix/ /var/lib/zabbix/ && \ - chgrp -R 0 /etc/zabbix/ /var/lib/zabbix/ && \ - chmod -R g=u /etc/zabbix/ /var/lib/zabbix/ && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ ${ZABBIX_USER_HOME_DIR}/ && \ apt-get -y autoremove && \ apt-get -y clean EXPOSE 10051/TCP -WORKDIR /var/lib/zabbix +WORKDIR ${ZABBIX_USER_HOME_DIR} -VOLUME ["/var/lib/zabbix/snmptraps"] +VOLUME ["${ZABBIX_USER_HOME_DIR}/snmptraps"] COPY ["docker-entrypoint.sh", "/usr/bin/"] diff --git a/Dockerfiles/proxy-mysql/ubuntu/docker-entrypoint.sh b/Dockerfiles/proxy-mysql/ubuntu/docker-entrypoint.sh index 8f1ca1a12..b27b0f781 100755 --- a/Dockerfiles/proxy-mysql/ubuntu/docker-entrypoint.sh +++ b/Dockerfiles/proxy-mysql/ubuntu/docker-entrypoint.sh @@ -13,10 +13,6 @@ fi : ${ZBX_SERVER_HOST:="zabbix-server"} # Default directories -# User 'zabbix' home directory -ZABBIX_USER_HOME_DIR="/var/lib/zabbix" -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Internal directory for TLS related files, used when TLS*File specified as plain text values ZABBIX_INTERNAL_ENC_DIR="${ZABBIX_USER_HOME_DIR}/enc_internal" @@ -349,7 +345,7 @@ create_db_schema_mysql() { update_zbx_config() { echo "** Preparing Zabbix proxy configuration file" - ZBX_CONFIG=$ZABBIX_ETC_DIR/zabbix_proxy.conf + ZBX_CONFIG=${ZABBIX_CONF_DIR}/zabbix_proxy.conf update_config_var $ZBX_CONFIG "ProxyMode" "${ZBX_PROXYMODE}" update_config_var $ZBX_CONFIG "Server" "${ZBX_SERVER_HOST}" @@ -473,7 +469,6 @@ update_zbx_config() { update_config_var $ZBX_CONFIG "UnavailableDelay" "${ZBX_UNAVAILABLEDELAY}" update_config_var $ZBX_CONFIG "UnreachableDelay" "${ZBX_UNREACHABLEDELAY}" - update_config_var $ZBX_CONFIG "AlertScriptsPath" "/usr/lib/zabbix/alertscripts" update_config_var $ZBX_CONFIG "ExternalScripts" "/usr/lib/zabbix/externalscripts" update_config_var $ZBX_CONFIG "FpingLocation" "${ZBX_FPINGLOCATION}" diff --git a/Dockerfiles/proxy-sqlite3/alpine/Dockerfile b/Dockerfiles/proxy-sqlite3/alpine/Dockerfile index b75413be3..58c6685e9 100644 --- a/Dockerfiles/proxy-sqlite3/alpine/Dockerfile +++ b/Dockerfiles/proxy-sqlite3/alpine/Dockerfile @@ -15,6 +15,8 @@ ENV TERM=xterm \ ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ MIBDIRS=/usr/share/snmp/mibs:/var/lib/zabbix/mibs MIBS=+ALL \ NMAP_PRIVILEGED="" \ + ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \ + ZABBIX_CONF_DIR="/etc/zabbix" \ ZBX_FPINGLOCATION="/usr/sbin/fping" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ @@ -30,7 +32,7 @@ LABEL org.opencontainers.image.authors="Alexey Pustovalov /dev/null' && \ - chown --quiet -R zabbix:root /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chgrp -R 0 /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chmod -R g=u /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ chown --quiet -R zabbix:root /etc/httpd/ /etc/php-fpm.d/ /etc/php-fpm.conf && \ chgrp -R 0 /etc/httpd/ /etc/php-fpm.d/ /etc/php-fpm.conf && \ chmod -R g=u /etc/httpd/ /etc/php-fpm.d/ /etc/php-fpm.conf && \ diff --git a/Dockerfiles/web-apache-mysql/centos/docker-entrypoint.sh b/Dockerfiles/web-apache-mysql/centos/docker-entrypoint.sh index 9158c0f7c..a6844c22e 100755 --- a/Dockerfiles/web-apache-mysql/centos/docker-entrypoint.sh +++ b/Dockerfiles/web-apache-mysql/centos/docker-entrypoint.sh @@ -19,8 +19,6 @@ fi : ${PHP_TZ:="Europe/Riga"} # Default directories -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Web interface www-root directory ZABBIX_WWW_ROOT="/usr/share/zabbix" # Apache main configuration file @@ -136,16 +134,16 @@ prepare_web_server() { APACHE_SITES_DIR=/etc/httpd/conf.d echo "** Adding Zabbix virtual host (HTTP)" - if [ -f "$ZABBIX_ETC_DIR/apache.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/apache.conf" "$APACHE_SITES_DIR/zabbix.conf" + if [ -f "$ZABBIX_CONF_DIR/apache.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/apache.conf" "$APACHE_SITES_DIR/zabbix.conf" else echo "**** Impossible to enable HTTP virtual host" fi if [ -f "/etc/ssl/apache2/ssl.crt" ] && [ -f "/etc/ssl/apache2/ssl.key" ]; then echo "** Adding Zabbix virtual host (HTTPS)" - if [ -f "$ZABBIX_ETC_DIR/apache_ssl.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/apache_ssl.conf" "$APACHE_SITES_DIR/zabbix_ssl.conf" + if [ -f "$ZABBIX_CONF_DIR/apache_ssl.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/apache_ssl.conf" "$APACHE_SITES_DIR/zabbix_ssl.conf" else echo "**** Impossible to enable HTTPS virtual host" fi @@ -231,12 +229,12 @@ prepare_zbx_web_config() { : ${HTTP_INDEX_FILE:="index.php"} sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/apache.conf" + "$ZABBIX_CONF_DIR/apache.conf" - if [ -f "$ZABBIX_ETC_DIR/apache_ssl.conf" ]; then + if [ -f "$ZABBIX_CONF_DIR/apache_ssl.conf" ]; then sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/apache_ssl.conf" + "$ZABBIX_CONF_DIR/apache_ssl.conf" fi : ${ENABLE_WEB_ACCESS_LOG:="true"} diff --git a/Dockerfiles/web-apache-mysql/ol/Dockerfile b/Dockerfiles/web-apache-mysql/ol/Dockerfile index c15633c29..e03639e07 100644 --- a/Dockerfiles/web-apache-mysql/ol/Dockerfile +++ b/Dockerfiles/web-apache-mysql/ol/Dockerfile @@ -12,7 +12,8 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix web-interface based on Apache2 web server with MySQL database support" \ @@ -77,9 +78,9 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ --shell /sbin/nologin \ --home-dir /var/lib/zabbix/ \ zabbix && \ - mkdir -p /etc/zabbix && \ - mkdir -p /etc/zabbix/web && \ - mkdir -p /etc/zabbix/web/certs && \ + mkdir -p ${ZABBIX_CONF_DIR} && \ + mkdir -p ${ZABBIX_CONF_DIR}/web && \ + mkdir -p ${ZABBIX_CONF_DIR}/web/certs && \ rm -f "/etc/httpd/conf.d/default.conf" && \ rm -f "/etc/httpd/conf.d/ssl.conf" && \ rm -f /etc/php-fpm.d/www.conf && \ @@ -94,14 +95,14 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ rm -f locale/add_new_language.sh locale/update_po.sh locale/make_mo.sh && \ find /usr/share/zabbix/locale -name '*.po' | xargs rm -f && \ find /usr/share/zabbix/locale -name '*.sh' | xargs rm -f && \ - ln -s "/etc/zabbix/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ - ln -s "/etc/zabbix/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ + ln -s "${ZABBIX_CONF_DIR}/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ + ln -s "${ZABBIX_CONF_DIR}/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ cat /usr/share/zabbix/include/locales.inc.php | grep display | grep true | awk '{$1=$1};1' | \ cut -d"'" -f 2 | sort | \ xargs -I '{}' bash -c 'echo "{}" && localedef -c -i {} -f UTF-8 {}.UTF-8 2>/dev/null' && \ - chown --quiet -R zabbix:root /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chgrp -R 0 /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chmod -R g=u /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ chown --quiet -R zabbix:root /etc/httpd/ /etc/php-fpm.d/ /etc/php-fpm.conf && \ chgrp -R 0 /etc/httpd/ /etc/php-fpm.d/ /etc/php-fpm.conf && \ chmod -R g=u /etc/httpd/ /etc/php-fpm.d/ /etc/php-fpm.conf && \ diff --git a/Dockerfiles/web-apache-mysql/ol/docker-entrypoint.sh b/Dockerfiles/web-apache-mysql/ol/docker-entrypoint.sh index 9158c0f7c..a6844c22e 100755 --- a/Dockerfiles/web-apache-mysql/ol/docker-entrypoint.sh +++ b/Dockerfiles/web-apache-mysql/ol/docker-entrypoint.sh @@ -19,8 +19,6 @@ fi : ${PHP_TZ:="Europe/Riga"} # Default directories -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Web interface www-root directory ZABBIX_WWW_ROOT="/usr/share/zabbix" # Apache main configuration file @@ -136,16 +134,16 @@ prepare_web_server() { APACHE_SITES_DIR=/etc/httpd/conf.d echo "** Adding Zabbix virtual host (HTTP)" - if [ -f "$ZABBIX_ETC_DIR/apache.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/apache.conf" "$APACHE_SITES_DIR/zabbix.conf" + if [ -f "$ZABBIX_CONF_DIR/apache.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/apache.conf" "$APACHE_SITES_DIR/zabbix.conf" else echo "**** Impossible to enable HTTP virtual host" fi if [ -f "/etc/ssl/apache2/ssl.crt" ] && [ -f "/etc/ssl/apache2/ssl.key" ]; then echo "** Adding Zabbix virtual host (HTTPS)" - if [ -f "$ZABBIX_ETC_DIR/apache_ssl.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/apache_ssl.conf" "$APACHE_SITES_DIR/zabbix_ssl.conf" + if [ -f "$ZABBIX_CONF_DIR/apache_ssl.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/apache_ssl.conf" "$APACHE_SITES_DIR/zabbix_ssl.conf" else echo "**** Impossible to enable HTTPS virtual host" fi @@ -231,12 +229,12 @@ prepare_zbx_web_config() { : ${HTTP_INDEX_FILE:="index.php"} sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/apache.conf" + "$ZABBIX_CONF_DIR/apache.conf" - if [ -f "$ZABBIX_ETC_DIR/apache_ssl.conf" ]; then + if [ -f "$ZABBIX_CONF_DIR/apache_ssl.conf" ]; then sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/apache_ssl.conf" + "$ZABBIX_CONF_DIR/apache_ssl.conf" fi : ${ENABLE_WEB_ACCESS_LOG:="true"} diff --git a/Dockerfiles/web-apache-mysql/ubuntu/Dockerfile b/Dockerfiles/web-apache-mysql/ubuntu/Dockerfile index dc3492816..84b431436 100644 --- a/Dockerfiles/web-apache-mysql/ubuntu/Dockerfile +++ b/Dockerfiles/web-apache-mysql/ubuntu/Dockerfile @@ -12,7 +12,8 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix web-interface based on Apache2 web server with MySQL database support" \ @@ -63,9 +64,9 @@ RUN --mount=type=cache,target=/var/lib/apt/,sharing=locked \ --shell /sbin/nologin \ --home-dir /var/lib/zabbix/ \ zabbix && \ - mkdir -p /etc/zabbix && \ - mkdir -p /etc/zabbix/web && \ - mkdir -p /etc/zabbix/web/certs && \ + mkdir -p ${ZABBIX_CONF_DIR} && \ + mkdir -p ${ZABBIX_CONF_DIR}/web && \ + mkdir -p ${ZABBIX_CONF_DIR}/web/certs && \ rm -f /etc/apache2/sites-available/* && \ rm -f /etc/apache2/sites-enabled/* && \ /usr/sbin/a2enmod ssl && \ @@ -87,17 +88,17 @@ RUN --mount=type=cache,target=/var/lib/apt/,sharing=locked \ rm -f locale/add_new_language.sh locale/update_po.sh locale/make_mo.sh && \ find /usr/share/zabbix/locale -name '*.po' | xargs rm -f && \ find /usr/share/zabbix/locale -name '*.sh' | xargs rm -f && \ - ln -s "/etc/zabbix/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ - ln -s "/etc/zabbix/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ + ln -s "${ZABBIX_CONF_DIR}/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ + ln -s "${ZABBIX_CONF_DIR}/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ mkdir -p /var/lib/locales/supported.d/ && \ rm -f /var/lib/locales/supported.d/local && \ cat /usr/share/zabbix/include/locales.inc.php | grep display | grep true | awk '{$1=$1};1' | \ cut -d"'" -f 2 | sort | \ xargs -I '{}' bash -c 'echo "{}.UTF-8 UTF-8" >> /var/lib/locales/supported.d/local' && \ dpkg-reconfigure locales && \ - chown --quiet -R zabbix:root /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chgrp -R 0 /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chmod -R g=u /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ chown --quiet -R zabbix:root /etc/apache2/ /etc/php/8.3/ && \ chgrp -R 0 /etc/apache2/ /etc/php/8.3/ && \ chmod -R g=u /etc/apache2/ /etc/php/8.3/ && \ diff --git a/Dockerfiles/web-apache-mysql/ubuntu/docker-entrypoint.sh b/Dockerfiles/web-apache-mysql/ubuntu/docker-entrypoint.sh index e1d02abfc..5baae7c80 100755 --- a/Dockerfiles/web-apache-mysql/ubuntu/docker-entrypoint.sh +++ b/Dockerfiles/web-apache-mysql/ubuntu/docker-entrypoint.sh @@ -19,8 +19,6 @@ fi : ${PHP_TZ:="Europe/Riga"} # Default directories -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Web interface www-root directory ZABBIX_WWW_ROOT="/usr/share/zabbix" # Apache main configuration file @@ -137,19 +135,19 @@ check_db_connect() { prepare_web_server() { APACHE_SITES_DIR="/etc/apache2/sites-enabled" - ln -sfT "$ZABBIX_ETC_DIR/apache_envvars" "/etc/apache2/envvars" + ln -sfT "$ZABBIX_CONF_DIR/apache_envvars" "/etc/apache2/envvars" echo "** Adding Zabbix virtual host (HTTP)" - if [ -f "$ZABBIX_ETC_DIR/apache.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/apache.conf" "$APACHE_SITES_DIR/zabbix.conf" + if [ -f "$ZABBIX_CONF_DIR/apache.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/apache.conf" "$APACHE_SITES_DIR/zabbix.conf" else echo "**** Impossible to enable HTTP virtual host" fi if [ -f "/etc/ssl/apache2/ssl.crt" ] && [ -f "/etc/ssl/apache2/ssl.key" ]; then echo "** Adding Zabbix virtual host (HTTPS)" - if [ -f "$ZABBIX_ETC_DIR/apache_ssl.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/apache_ssl.conf" "$APACHE_SITES_DIR/zabbix_ssl.conf" + if [ -f "$ZABBIX_CONF_DIR/apache_ssl.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/apache_ssl.conf" "$APACHE_SITES_DIR/zabbix_ssl.conf" else echo "**** Impossible to enable HTTPS virtual host" fi @@ -219,12 +217,12 @@ prepare_zbx_web_config() { : ${HTTP_INDEX_FILE:="index.php"} sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/apache.conf" + "$ZABBIX_CONF_DIR/apache.conf" - if [ -f "$ZABBIX_ETC_DIR/apache_ssl.conf" ]; then + if [ -f "$ZABBIX_CONF_DIR/apache_ssl.conf" ]; then sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/apache_ssl.conf" + "$ZABBIX_CONF_DIR/apache_ssl.conf" fi : ${ENABLE_WEB_ACCESS_LOG:="true"} diff --git a/Dockerfiles/web-apache-pgsql/alpine/Dockerfile b/Dockerfiles/web-apache-pgsql/alpine/Dockerfile index 3e892cd2b..ea14427d1 100644 --- a/Dockerfiles/web-apache-pgsql/alpine/Dockerfile +++ b/Dockerfiles/web-apache-pgsql/alpine/Dockerfile @@ -12,7 +12,8 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix web-interface based on Apache2 web server with PostgreSQL database support" \ @@ -73,9 +74,9 @@ RUN set -eux && \ --shell /sbin/nologin \ --home /var/lib/zabbix/ \ zabbix && \ - mkdir -p /etc/zabbix && \ - mkdir -p /etc/zabbix/web && \ - mkdir -p /etc/zabbix/web/certs && \ + mkdir -p ${ZABBIX_CONF_DIR} && \ + mkdir -p ${ZABBIX_CONF_DIR}/web && \ + mkdir -p ${ZABBIX_CONF_DIR}/web/certs && \ rm -f "/etc/apache2/conf.d/default.conf" && \ rm -f "/etc/apache2/conf.d/ssl.conf" && \ sed -ri \ @@ -93,11 +94,11 @@ RUN set -eux && \ rm -f locale/add_new_language.sh locale/update_po.sh locale/make_mo.sh && \ find /usr/share/zabbix/locale -name '*.po' | xargs rm -f && \ find /usr/share/zabbix/locale -name '*.sh' | xargs rm -f && \ - ln -s "/etc/zabbix/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ - ln -s "/etc/zabbix/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ - chown --quiet -R zabbix:root /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chgrp -R 0 /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chmod -R g=u /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + ln -s "${ZABBIX_CONF_DIR}/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ + ln -s "${ZABBIX_CONF_DIR}/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ chown --quiet -R zabbix:root /etc/apache2/ /etc/php83/ && \ chgrp -R 0 /etc/apache2/ /etc/php83/ && \ chmod -R g=u /etc/apache2/ /etc/php83/ diff --git a/Dockerfiles/web-apache-pgsql/alpine/docker-entrypoint.sh b/Dockerfiles/web-apache-pgsql/alpine/docker-entrypoint.sh index 16a58483f..e4252747c 100755 --- a/Dockerfiles/web-apache-pgsql/alpine/docker-entrypoint.sh +++ b/Dockerfiles/web-apache-pgsql/alpine/docker-entrypoint.sh @@ -19,8 +19,6 @@ fi : ${PHP_TZ:="Europe/Riga"} # Default directories -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Web interface www-root directory ZABBIX_WWW_ROOT="/usr/share/zabbix" # Apache main configuration file @@ -135,16 +133,16 @@ prepare_web_server() { APACHE_SITES_DIR=/etc/apache2/conf.d echo "** Adding Zabbix virtual host (HTTP)" - if [ -f "$ZABBIX_ETC_DIR/apache.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/apache.conf" "$APACHE_SITES_DIR/zabbix.conf" + if [ -f "$ZABBIX_CONF_DIR/apache.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/apache.conf" "$APACHE_SITES_DIR/zabbix.conf" else echo "**** Impossible to enable HTTP virtual host" fi if [ -f "/etc/ssl/apache2/ssl.crt" ] && [ -f "/etc/ssl/apache2/ssl.key" ]; then echo "** Adding Zabbix virtual host (HTTPS)" - if [ -f "$ZABBIX_ETC_DIR/apache_ssl.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/apache_ssl.conf" "$APACHE_SITES_DIR/zabbix_ssl.conf" + if [ -f "$ZABBIX_CONF_DIR/apache_ssl.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/apache_ssl.conf" "$APACHE_SITES_DIR/zabbix_ssl.conf" else echo "**** Impossible to enable HTTPS virtual host" fi @@ -214,12 +212,12 @@ prepare_zbx_web_config() { : ${HTTP_INDEX_FILE:="index.php"} sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/apache.conf" + "$ZABBIX_CONF_DIR/apache.conf" - if [ -f "$ZABBIX_ETC_DIR/apache_ssl.conf" ]; then + if [ -f "$ZABBIX_CONF_DIR/apache_ssl.conf" ]; then sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/apache_ssl.conf" + "$ZABBIX_CONF_DIR/apache_ssl.conf" fi : ${ENABLE_WEB_ACCESS_LOG:="true"} diff --git a/Dockerfiles/web-apache-pgsql/centos/Dockerfile b/Dockerfiles/web-apache-pgsql/centos/Dockerfile index ce504e934..6c9e6f22c 100644 --- a/Dockerfiles/web-apache-pgsql/centos/Dockerfile +++ b/Dockerfiles/web-apache-pgsql/centos/Dockerfile @@ -12,7 +12,8 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix web-interface based on Apache2 web server with PostgreSQL database support" \ @@ -91,9 +92,9 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ --shell /sbin/nologin \ --home-dir /var/lib/zabbix/ \ zabbix && \ - mkdir -p /etc/zabbix && \ - mkdir -p /etc/zabbix/web && \ - mkdir -p /etc/zabbix/web/certs && \ + mkdir -p ${ZABBIX_CONF_DIR} && \ + mkdir -p ${ZABBIX_CONF_DIR}/web && \ + mkdir -p ${ZABBIX_CONF_DIR}/web/certs && \ rm -f "/etc/httpd/conf.d/default.conf" && \ rm -f "/etc/httpd/conf.d/ssl.conf" && \ rm -f /etc/php-fpm.d/www.conf && \ @@ -108,14 +109,14 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ rm -f locale/add_new_language.sh locale/update_po.sh locale/make_mo.sh && \ find /usr/share/zabbix/locale -name '*.po' | xargs rm -f && \ find /usr/share/zabbix/locale -name '*.sh' | xargs rm -f && \ - ln -s "/etc/zabbix/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ - ln -s "/etc/zabbix/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ + ln -s "${ZABBIX_CONF_DIR}/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ + ln -s "${ZABBIX_CONF_DIR}/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ cat /usr/share/zabbix/include/locales.inc.php | grep display | grep true | awk '{$1=$1};1' | \ cut -d"'" -f 2 | sort | \ xargs -I '{}' bash -c 'echo "{}" && localedef -c -i {} -f UTF-8 {}.UTF-8 2>/dev/null' && \ - chown --quiet -R zabbix:root /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chgrp -R 0 /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chmod -R g=u /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ chown --quiet -R zabbix:root /etc/httpd/ /etc/php-fpm.d/ /etc/php-fpm.conf && \ chgrp -R 0 /etc/httpd/ /etc/php-fpm.d/ /etc/php-fpm.conf && \ chmod -R g=u /etc/httpd/ /etc/php-fpm.d/ /etc/php-fpm.conf && \ diff --git a/Dockerfiles/web-apache-pgsql/centos/docker-entrypoint.sh b/Dockerfiles/web-apache-pgsql/centos/docker-entrypoint.sh index 067668da0..4f4fef226 100755 --- a/Dockerfiles/web-apache-pgsql/centos/docker-entrypoint.sh +++ b/Dockerfiles/web-apache-pgsql/centos/docker-entrypoint.sh @@ -19,8 +19,6 @@ fi : ${PHP_TZ:="Europe/Riga"} # Default directories -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Web interface www-root directory ZABBIX_WWW_ROOT="/usr/share/zabbix" # Apache main configuration file @@ -135,16 +133,16 @@ prepare_web_server() { APACHE_SITES_DIR=/etc/httpd/conf.d echo "** Adding Zabbix virtual host (HTTP)" - if [ -f "$ZABBIX_ETC_DIR/apache.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/apache.conf" "$APACHE_SITES_DIR/zabbix.conf" + if [ -f "$ZABBIX_CONF_DIR/apache.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/apache.conf" "$APACHE_SITES_DIR/zabbix.conf" else echo "**** Impossible to enable HTTP virtual host" fi if [ -f "/etc/ssl/apache2/ssl.crt" ] && [ -f "/etc/ssl/apache2/ssl.key" ]; then echo "** Adding Zabbix virtual host (HTTPS)" - if [ -f "$ZABBIX_ETC_DIR/apache_ssl.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/apache_ssl.conf" "$APACHE_SITES_DIR/zabbix_ssl.conf" + if [ -f "$ZABBIX_CONF_DIR/apache_ssl.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/apache_ssl.conf" "$APACHE_SITES_DIR/zabbix_ssl.conf" else echo "**** Impossible to enable HTTPS virtual host" fi @@ -230,12 +228,12 @@ prepare_zbx_web_config() { : ${HTTP_INDEX_FILE:="index.php"} sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/apache.conf" + "$ZABBIX_CONF_DIR/apache.conf" - if [ -f "$ZABBIX_ETC_DIR/apache_ssl.conf" ]; then + if [ -f "$ZABBIX_CONF_DIR/apache_ssl.conf" ]; then sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/apache_ssl.conf" + "$ZABBIX_CONF_DIR/apache_ssl.conf" fi : ${ENABLE_WEB_ACCESS_LOG:="true"} diff --git a/Dockerfiles/web-apache-pgsql/ol/Dockerfile b/Dockerfiles/web-apache-pgsql/ol/Dockerfile index d1706db3d..fdce9ce5a 100644 --- a/Dockerfiles/web-apache-pgsql/ol/Dockerfile +++ b/Dockerfiles/web-apache-pgsql/ol/Dockerfile @@ -12,7 +12,8 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix web-interface based on Apache2 web server with PostgreSQL database support" \ @@ -78,9 +79,9 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ --shell /sbin/nologin \ --home-dir /var/lib/zabbix/ \ zabbix && \ - mkdir -p /etc/zabbix && \ - mkdir -p /etc/zabbix/web && \ - mkdir -p /etc/zabbix/web/certs && \ + mkdir -p ${ZABBIX_CONF_DIR} && \ + mkdir -p ${ZABBIX_CONF_DIR}/web && \ + mkdir -p ${ZABBIX_CONF_DIR}/web/certs && \ rm -f "/etc/httpd/conf.d/default.conf" && \ rm -f "/etc/httpd/conf.d/ssl.conf" && \ rm -f /etc/php-fpm.d/www.conf && \ @@ -95,14 +96,14 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ rm -f locale/add_new_language.sh locale/update_po.sh locale/make_mo.sh && \ find /usr/share/zabbix/locale -name '*.po' | xargs rm -f && \ find /usr/share/zabbix/locale -name '*.sh' | xargs rm -f && \ - ln -s "/etc/zabbix/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ - ln -s "/etc/zabbix/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ + ln -s "${ZABBIX_CONF_DIR}/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ + ln -s "${ZABBIX_CONF_DIR}/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ cat /usr/share/zabbix/include/locales.inc.php | grep display | grep true | awk '{$1=$1};1' | \ cut -d"'" -f 2 | sort | \ xargs -I '{}' bash -c 'echo "{}" && localedef -c -i {} -f UTF-8 {}.UTF-8 2>/dev/null' && \ - chown --quiet -R zabbix:root /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chgrp -R 0 /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chmod -R g=u /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ chown --quiet -R zabbix:root /etc/httpd/ /etc/php-fpm.d/ /etc/php-fpm.conf && \ chgrp -R 0 /etc/httpd/ /etc/php-fpm.d/ /etc/php-fpm.conf && \ chmod -R g=u /etc/httpd/ /etc/php-fpm.d/ /etc/php-fpm.conf && \ diff --git a/Dockerfiles/web-apache-pgsql/ol/docker-entrypoint.sh b/Dockerfiles/web-apache-pgsql/ol/docker-entrypoint.sh index 067668da0..4f4fef226 100755 --- a/Dockerfiles/web-apache-pgsql/ol/docker-entrypoint.sh +++ b/Dockerfiles/web-apache-pgsql/ol/docker-entrypoint.sh @@ -19,8 +19,6 @@ fi : ${PHP_TZ:="Europe/Riga"} # Default directories -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Web interface www-root directory ZABBIX_WWW_ROOT="/usr/share/zabbix" # Apache main configuration file @@ -135,16 +133,16 @@ prepare_web_server() { APACHE_SITES_DIR=/etc/httpd/conf.d echo "** Adding Zabbix virtual host (HTTP)" - if [ -f "$ZABBIX_ETC_DIR/apache.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/apache.conf" "$APACHE_SITES_DIR/zabbix.conf" + if [ -f "$ZABBIX_CONF_DIR/apache.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/apache.conf" "$APACHE_SITES_DIR/zabbix.conf" else echo "**** Impossible to enable HTTP virtual host" fi if [ -f "/etc/ssl/apache2/ssl.crt" ] && [ -f "/etc/ssl/apache2/ssl.key" ]; then echo "** Adding Zabbix virtual host (HTTPS)" - if [ -f "$ZABBIX_ETC_DIR/apache_ssl.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/apache_ssl.conf" "$APACHE_SITES_DIR/zabbix_ssl.conf" + if [ -f "$ZABBIX_CONF_DIR/apache_ssl.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/apache_ssl.conf" "$APACHE_SITES_DIR/zabbix_ssl.conf" else echo "**** Impossible to enable HTTPS virtual host" fi @@ -230,12 +228,12 @@ prepare_zbx_web_config() { : ${HTTP_INDEX_FILE:="index.php"} sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/apache.conf" + "$ZABBIX_CONF_DIR/apache.conf" - if [ -f "$ZABBIX_ETC_DIR/apache_ssl.conf" ]; then + if [ -f "$ZABBIX_CONF_DIR/apache_ssl.conf" ]; then sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/apache_ssl.conf" + "$ZABBIX_CONF_DIR/apache_ssl.conf" fi : ${ENABLE_WEB_ACCESS_LOG:="true"} diff --git a/Dockerfiles/web-apache-pgsql/ubuntu/Dockerfile b/Dockerfiles/web-apache-pgsql/ubuntu/Dockerfile index c5cf0ef11..e8bd527ad 100644 --- a/Dockerfiles/web-apache-pgsql/ubuntu/Dockerfile +++ b/Dockerfiles/web-apache-pgsql/ubuntu/Dockerfile @@ -12,7 +12,8 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix web-interface based on Apache2 web server with PostgreSQL database support" \ @@ -63,9 +64,9 @@ RUN --mount=type=cache,target=/var/lib/apt/,sharing=locked \ --shell /sbin/nologin \ --home-dir /var/lib/zabbix/ \ zabbix && \ - mkdir -p /etc/zabbix && \ - mkdir -p /etc/zabbix/web && \ - mkdir -p /etc/zabbix/web/certs && \ + mkdir -p ${ZABBIX_CONF_DIR} && \ + mkdir -p ${ZABBIX_CONF_DIR}/web && \ + mkdir -p ${ZABBIX_CONF_DIR}/web/certs && \ rm -f /etc/apache2/sites-available/* && \ rm -f /etc/apache2/sites-enabled/* && \ /usr/sbin/a2enmod ssl && \ @@ -87,17 +88,17 @@ RUN --mount=type=cache,target=/var/lib/apt/,sharing=locked \ rm -f locale/add_new_language.sh locale/update_po.sh locale/make_mo.sh && \ find /usr/share/zabbix/locale -name '*.po' | xargs rm -f && \ find /usr/share/zabbix/locale -name '*.sh' | xargs rm -f && \ - ln -s "/etc/zabbix/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ - ln -s "/etc/zabbix/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ + ln -s "${ZABBIX_CONF_DIR}/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ + ln -s "${ZABBIX_CONF_DIR}/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ mkdir -p /var/lib/locales/supported.d/ && \ rm -f /var/lib/locales/supported.d/local && \ cat /usr/share/zabbix/include/locales.inc.php | grep display | grep true | awk '{$1=$1};1' | \ cut -d"'" -f 2 | sort | \ xargs -I '{}' bash -c 'echo "{}.UTF-8 UTF-8" >> /var/lib/locales/supported.d/local' && \ dpkg-reconfigure locales && \ - chown --quiet -R zabbix:root /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chgrp -R 0 /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chmod -R g=u /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ chown --quiet -R zabbix:root /etc/apache2/ /etc/php/8.3/ && \ chgrp -R 0 /etc/apache2/ /etc/php/8.3/ && \ chmod -R g=u /etc/apache2/ /etc/php/8.3/ && \ diff --git a/Dockerfiles/web-apache-pgsql/ubuntu/docker-entrypoint.sh b/Dockerfiles/web-apache-pgsql/ubuntu/docker-entrypoint.sh index 651f2da46..c4d668797 100755 --- a/Dockerfiles/web-apache-pgsql/ubuntu/docker-entrypoint.sh +++ b/Dockerfiles/web-apache-pgsql/ubuntu/docker-entrypoint.sh @@ -19,8 +19,6 @@ fi : ${PHP_TZ:="Europe/Riga"} # Default directories -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Web interface www-root directory ZABBIX_WWW_ROOT="/usr/share/zabbix" # Apache main configuration file @@ -136,19 +134,19 @@ check_db_connect() { prepare_web_server() { APACHE_SITES_DIR="/etc/apache2/sites-enabled" - ln -sfT "$ZABBIX_ETC_DIR/apache_envvars" "/etc/apache2/envvars" + ln -sfT "$ZABBIX_CONF_DIR/apache_envvars" "/etc/apache2/envvars" echo "** Adding Zabbix virtual host (HTTP)" - if [ -f "$ZABBIX_ETC_DIR/apache.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/apache.conf" "$APACHE_SITES_DIR/zabbix.conf" + if [ -f "$ZABBIX_CONF_DIR/apache.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/apache.conf" "$APACHE_SITES_DIR/zabbix.conf" else echo "**** Impossible to enable HTTP virtual host" fi if [ -f "/etc/ssl/apache2/ssl.crt" ] && [ -f "/etc/ssl/apache2/ssl.key" ]; then echo "** Adding Zabbix virtual host (HTTPS)" - if [ -f "$ZABBIX_ETC_DIR/apache_ssl.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/apache_ssl.conf" "$APACHE_SITES_DIR/zabbix_ssl.conf" + if [ -f "$ZABBIX_CONF_DIR/apache_ssl.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/apache_ssl.conf" "$APACHE_SITES_DIR/zabbix_ssl.conf" else echo "**** Impossible to enable HTTPS virtual host" fi @@ -222,12 +220,12 @@ prepare_zbx_web_config() { : ${HTTP_INDEX_FILE:="index.php"} sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/apache.conf" + "$ZABBIX_CONF_DIR/apache.conf" - if [ -f "$ZABBIX_ETC_DIR/apache_ssl.conf" ]; then + if [ -f "$ZABBIX_CONF_DIR/apache_ssl.conf" ]; then sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/apache_ssl.conf" + "$ZABBIX_CONF_DIR/apache_ssl.conf" fi : ${ENABLE_WEB_ACCESS_LOG:="true"} diff --git a/Dockerfiles/web-nginx-mysql/alpine/Dockerfile b/Dockerfiles/web-nginx-mysql/alpine/Dockerfile index 725e826eb..ea9d63619 100644 --- a/Dockerfiles/web-nginx-mysql/alpine/Dockerfile +++ b/Dockerfiles/web-nginx-mysql/alpine/Dockerfile @@ -12,7 +12,8 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix web-interface based on Nginx web server with MySQL database support" \ @@ -75,9 +76,9 @@ RUN set -eux && \ --shell /sbin/nologin \ --home /var/lib/zabbix/ \ zabbix && \ - mkdir -p /etc/zabbix && \ - mkdir -p /etc/zabbix/web && \ - mkdir -p /etc/zabbix/web/certs && \ + mkdir -p ${ZABBIX_CONF_DIR} && \ + mkdir -p ${ZABBIX_CONF_DIR}/web && \ + mkdir -p ${ZABBIX_CONF_DIR}/web/certs && \ mkdir -p /var/lib/php/session && \ rm -rf /etc/php83/php-fpm.d/www.conf && \ rm -f /etc/nginx/http.d/*.conf && \ @@ -89,11 +90,11 @@ RUN set -eux && \ rm -f locale/add_new_language.sh locale/update_po.sh locale/make_mo.sh && \ find /usr/share/zabbix/locale -name '*.po' | xargs rm -f && \ find /usr/share/zabbix/locale -name '*.sh' | xargs rm -f && \ - ln -s "/etc/zabbix/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ - ln -s "/etc/zabbix/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ - chown --quiet -R zabbix:root /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chgrp -R 0 /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chmod -R g=u /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + ln -s "${ZABBIX_CONF_DIR}/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ + ln -s "${ZABBIX_CONF_DIR}/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ chown --quiet -R zabbix:root /etc/nginx/ /etc/php83/php-fpm.d/ /etc/php83/php-fpm.conf && \ chgrp -R 0 /etc/nginx/ /etc/php83/php-fpm.d/ /etc/php83/php-fpm.conf && \ chmod -R g=u /etc/nginx/ /etc/php83/php-fpm.d/ /etc/php83/php-fpm.conf && \ diff --git a/Dockerfiles/web-nginx-mysql/alpine/docker-entrypoint.sh b/Dockerfiles/web-nginx-mysql/alpine/docker-entrypoint.sh index 6328ee0cb..9301d5b29 100755 --- a/Dockerfiles/web-nginx-mysql/alpine/docker-entrypoint.sh +++ b/Dockerfiles/web-nginx-mysql/alpine/docker-entrypoint.sh @@ -22,8 +22,6 @@ fi : ${DAEMON_USER:="nginx"} # Default directories -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Web interface www-root directory ZABBIX_WWW_ROOT="/usr/share/zabbix" # Nginx main configuration file @@ -140,21 +138,21 @@ prepare_web_server() { NGINX_SSL_CONFIG="/etc/ssl/nginx" if [ ! -f "/proc/net/if_inet6" ]; then - sed -i '/listen \[::\]/d' "$ZABBIX_ETC_DIR/nginx.conf" - sed -i '/listen \[::\]/d' "$ZABBIX_ETC_DIR/nginx_ssl.conf" + sed -i '/listen \[::\]/d' "$ZABBIX_CONF_DIR/nginx.conf" + sed -i '/listen \[::\]/d' "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi echo "** Adding Zabbix virtual host (HTTP)" - if [ -f "$ZABBIX_ETC_DIR/nginx.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/nginx.conf" "$NGINX_CONFD_DIR/nginx.conf" + if [ -f "$ZABBIX_CONF_DIR/nginx.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/nginx.conf" "$NGINX_CONFD_DIR/nginx.conf" else echo "**** Impossible to enable HTTP virtual host" fi if [ -f "$NGINX_SSL_CONFIG/ssl.crt" ] && [ -f "$NGINX_SSL_CONFIG/ssl.key" ] && [ -f "$NGINX_SSL_CONFIG/dhparam.pem" ]; then echo "** Enable SSL support for Nginx" - if [ -f "$ZABBIX_ETC_DIR/nginx_ssl.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/nginx_ssl.conf" "$NGINX_CONFD_DIR/nginx_ssl.conf" + if [ -f "$ZABBIX_CONF_DIR/nginx_ssl.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/nginx_ssl.conf" "$NGINX_CONFD_DIR/nginx_ssl.conf" else echo "**** Impossible to enable HTTPS virtual host" fi @@ -242,21 +240,21 @@ prepare_zbx_web_config() { FCGI_READ_TIMEOUT=$(expr ${ZBX_MAXEXECUTIONTIME} + 1) sed -i \ -e "s/{FCGI_READ_TIMEOUT}/${FCGI_READ_TIMEOUT}/g" \ - "$ZABBIX_ETC_DIR/nginx.conf" + "$ZABBIX_CONF_DIR/nginx.conf" : ${HTTP_INDEX_FILE:="index.php"} sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/nginx.conf" + "$ZABBIX_CONF_DIR/nginx.conf" - if [ -f "$ZABBIX_ETC_DIR/nginx_ssl.conf" ]; then + if [ -f "$ZABBIX_CONF_DIR/nginx_ssl.conf" ]; then sed -i \ -e "s/{FCGI_READ_TIMEOUT}/${FCGI_READ_TIMEOUT}/g" \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi : ${ENABLE_WEB_ACCESS_LOG:="true"} @@ -267,10 +265,10 @@ prepare_zbx_web_config() { "$NGINX_CONF_FILE" sed -ri \ -e 's!^(\s*access_log).+\;!\1 off\;!g' \ - "$ZABBIX_ETC_DIR/nginx.conf" + "$ZABBIX_CONF_DIR/nginx.conf" sed -ri \ -e 's!^(\s*access_log).+\;!\1 off\;!g' \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi : ${EXPOSE_WEB_SERVER_INFO:="on"} diff --git a/Dockerfiles/web-nginx-mysql/centos/Dockerfile b/Dockerfiles/web-nginx-mysql/centos/Dockerfile index 0fcb5635c..7f56ac6cb 100644 --- a/Dockerfiles/web-nginx-mysql/centos/Dockerfile +++ b/Dockerfiles/web-nginx-mysql/centos/Dockerfile @@ -12,7 +12,8 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix web-interface based on Nginx web server with MySQL database support" \ @@ -89,9 +90,9 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ --shell /sbin/nologin \ --home-dir /var/lib/zabbix/ \ zabbix && \ - mkdir -p /etc/zabbix && \ - mkdir -p /etc/zabbix/web && \ - mkdir -p /etc/zabbix/web/certs && \ + mkdir -p ${ZABBIX_CONF_DIR} && \ + mkdir -p ${ZABBIX_CONF_DIR}/web && \ + mkdir -p ${ZABBIX_CONF_DIR}/web/certs && \ mkdir -p /var/lib/php/session && \ rm -f /etc/nginx/conf.d/*.conf && \ rm -f /etc/php-fpm.d/www.conf && \ @@ -103,14 +104,14 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ rm -f locale/add_new_language.sh locale/update_po.sh locale/make_mo.sh && \ find /usr/share/zabbix/locale -name '*.po' | xargs rm -f && \ find /usr/share/zabbix/locale -name '*.sh' | xargs rm -f && \ - ln -s "/etc/zabbix/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ - ln -s "/etc/zabbix/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ + ln -s "${ZABBIX_CONF_DIR}/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ + ln -s "${ZABBIX_CONF_DIR}/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ cat /usr/share/zabbix/include/locales.inc.php | grep display | grep true | awk '{$1=$1};1' | \ cut -d"'" -f 2 | sort | \ xargs -I '{}' bash -c 'echo "{}" && localedef -c -i {} -f UTF-8 {}.UTF-8 2>/dev/null' && \ - chown --quiet -R zabbix:root /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chgrp -R 0 /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chmod -R g=u /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ chown --quiet -R zabbix:root /etc/nginx/ /etc/php-fpm.d/ /etc/php-fpm.conf /var/log/nginx/ && \ chgrp -R 0 /etc/nginx/ /etc/php-fpm.d/ /etc/php-fpm.conf /var/log/nginx/ && \ chmod -R g=u /etc/nginx/ /etc/php-fpm.d/ /etc/php-fpm.conf /var/log/nginx/ && \ diff --git a/Dockerfiles/web-nginx-mysql/centos/docker-entrypoint.sh b/Dockerfiles/web-nginx-mysql/centos/docker-entrypoint.sh index dce08edb6..224fd820e 100755 --- a/Dockerfiles/web-nginx-mysql/centos/docker-entrypoint.sh +++ b/Dockerfiles/web-nginx-mysql/centos/docker-entrypoint.sh @@ -22,8 +22,6 @@ fi : ${DAEMON_USER:="nginx"} # Default directories -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Web interface www-root directory ZABBIX_WWW_ROOT="/usr/share/zabbix" # Nginx main configuration file @@ -140,21 +138,21 @@ prepare_web_server() { NGINX_SSL_CONFIG="/etc/ssl/nginx" if [ ! -f "/proc/net/if_inet6" ]; then - sed -i '/listen \[::\]/d' "$ZABBIX_ETC_DIR/nginx.conf" - sed -i '/listen \[::\]/d' "$ZABBIX_ETC_DIR/nginx_ssl.conf" + sed -i '/listen \[::\]/d' "$ZABBIX_CONF_DIR/nginx.conf" + sed -i '/listen \[::\]/d' "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi echo "** Adding Zabbix virtual host (HTTP)" - if [ -f "$ZABBIX_ETC_DIR/nginx.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/nginx.conf" "$NGINX_CONFD_DIR/nginx.conf" + if [ -f "$ZABBIX_CONF_DIR/nginx.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/nginx.conf" "$NGINX_CONFD_DIR/nginx.conf" else echo "**** Impossible to enable HTTP virtual host" fi if [ -f "$NGINX_SSL_CONFIG/ssl.crt" ] && [ -f "$NGINX_SSL_CONFIG/ssl.key" ] && [ -f "$NGINX_SSL_CONFIG/dhparam.pem" ]; then echo "** Enable SSL support for Nginx" - if [ -f "$ZABBIX_ETC_DIR/nginx_ssl.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/nginx_ssl.conf" "$NGINX_CONFD_DIR/nginx_ssl.conf" + if [ -f "$ZABBIX_CONF_DIR/nginx_ssl.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/nginx_ssl.conf" "$NGINX_CONFD_DIR/nginx_ssl.conf" else echo "**** Impossible to enable HTTPS virtual host" fi @@ -242,21 +240,21 @@ prepare_zbx_web_config() { FCGI_READ_TIMEOUT=$(expr ${ZBX_MAXEXECUTIONTIME} + 1) sed -i \ -e "s/{FCGI_READ_TIMEOUT}/${FCGI_READ_TIMEOUT}/g" \ - "$ZABBIX_ETC_DIR/nginx.conf" + "$ZABBIX_CONF_DIR/nginx.conf" : ${HTTP_INDEX_FILE:="index.php"} sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/nginx.conf" + "$ZABBIX_CONF_DIR/nginx.conf" - if [ -f "$ZABBIX_ETC_DIR/nginx_ssl.conf" ]; then + if [ -f "$ZABBIX_CONF_DIR/nginx_ssl.conf" ]; then sed -i \ -e "s/{FCGI_READ_TIMEOUT}/${FCGI_READ_TIMEOUT}/g" \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi : ${ENABLE_WEB_ACCESS_LOG:="true"} @@ -267,10 +265,10 @@ prepare_zbx_web_config() { "$NGINX_CONF_FILE" sed -ri \ -e 's!^(\s*access_log).+\;!\1 off\;!g' \ - "$ZABBIX_ETC_DIR/nginx.conf" + "$ZABBIX_CONF_DIR/nginx.conf" sed -ri \ -e 's!^(\s*access_log).+\;!\1 off\;!g' \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi : ${EXPOSE_WEB_SERVER_INFO:="on"} diff --git a/Dockerfiles/web-nginx-mysql/ol/Dockerfile b/Dockerfiles/web-nginx-mysql/ol/Dockerfile index 0edbde8f8..e72dadfa2 100644 --- a/Dockerfiles/web-nginx-mysql/ol/Dockerfile +++ b/Dockerfiles/web-nginx-mysql/ol/Dockerfile @@ -12,7 +12,8 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix web-interface based on Nginx web server with MySQL database support" \ @@ -76,9 +77,9 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ --shell /sbin/nologin \ --home-dir /var/lib/zabbix/ \ zabbix && \ - mkdir -p /etc/zabbix && \ - mkdir -p /etc/zabbix/web && \ - mkdir -p /etc/zabbix/web/certs && \ + mkdir -p ${ZABBIX_CONF_DIR} && \ + mkdir -p ${ZABBIX_CONF_DIR}/web && \ + mkdir -p ${ZABBIX_CONF_DIR}/web/certs && \ mkdir -p /var/lib/php/session && \ rm -f /etc/nginx/conf.d/*.conf && \ rm -f /etc/php-fpm.d/www.conf && \ @@ -90,14 +91,14 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ rm -f locale/add_new_language.sh locale/update_po.sh locale/make_mo.sh && \ find /usr/share/zabbix/locale -name '*.po' | xargs rm -f && \ find /usr/share/zabbix/locale -name '*.sh' | xargs rm -f && \ - ln -s "/etc/zabbix/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ - ln -s "/etc/zabbix/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ + ln -s "${ZABBIX_CONF_DIR}/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ + ln -s "${ZABBIX_CONF_DIR}/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ cat /usr/share/zabbix/include/locales.inc.php | grep display | grep true | awk '{$1=$1};1' | \ cut -d"'" -f 2 | sort | \ xargs -I '{}' bash -c 'echo "{}" && localedef -c -i {} -f UTF-8 {}.UTF-8 2>/dev/null' && \ - chown --quiet -R zabbix:root /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chgrp -R 0 /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chmod -R g=u /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ chown --quiet -R zabbix:root /etc/nginx/ /etc/php-fpm.d/ /etc/php-fpm.conf /var/log/nginx/ && \ chgrp -R 0 /etc/nginx/ /etc/php-fpm.d/ /etc/php-fpm.conf /var/log/nginx/ && \ chmod -R g=u /etc/nginx/ /etc/php-fpm.d/ /etc/php-fpm.conf /var/log/nginx/ && \ diff --git a/Dockerfiles/web-nginx-mysql/ol/docker-entrypoint.sh b/Dockerfiles/web-nginx-mysql/ol/docker-entrypoint.sh index dce08edb6..224fd820e 100755 --- a/Dockerfiles/web-nginx-mysql/ol/docker-entrypoint.sh +++ b/Dockerfiles/web-nginx-mysql/ol/docker-entrypoint.sh @@ -22,8 +22,6 @@ fi : ${DAEMON_USER:="nginx"} # Default directories -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Web interface www-root directory ZABBIX_WWW_ROOT="/usr/share/zabbix" # Nginx main configuration file @@ -140,21 +138,21 @@ prepare_web_server() { NGINX_SSL_CONFIG="/etc/ssl/nginx" if [ ! -f "/proc/net/if_inet6" ]; then - sed -i '/listen \[::\]/d' "$ZABBIX_ETC_DIR/nginx.conf" - sed -i '/listen \[::\]/d' "$ZABBIX_ETC_DIR/nginx_ssl.conf" + sed -i '/listen \[::\]/d' "$ZABBIX_CONF_DIR/nginx.conf" + sed -i '/listen \[::\]/d' "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi echo "** Adding Zabbix virtual host (HTTP)" - if [ -f "$ZABBIX_ETC_DIR/nginx.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/nginx.conf" "$NGINX_CONFD_DIR/nginx.conf" + if [ -f "$ZABBIX_CONF_DIR/nginx.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/nginx.conf" "$NGINX_CONFD_DIR/nginx.conf" else echo "**** Impossible to enable HTTP virtual host" fi if [ -f "$NGINX_SSL_CONFIG/ssl.crt" ] && [ -f "$NGINX_SSL_CONFIG/ssl.key" ] && [ -f "$NGINX_SSL_CONFIG/dhparam.pem" ]; then echo "** Enable SSL support for Nginx" - if [ -f "$ZABBIX_ETC_DIR/nginx_ssl.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/nginx_ssl.conf" "$NGINX_CONFD_DIR/nginx_ssl.conf" + if [ -f "$ZABBIX_CONF_DIR/nginx_ssl.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/nginx_ssl.conf" "$NGINX_CONFD_DIR/nginx_ssl.conf" else echo "**** Impossible to enable HTTPS virtual host" fi @@ -242,21 +240,21 @@ prepare_zbx_web_config() { FCGI_READ_TIMEOUT=$(expr ${ZBX_MAXEXECUTIONTIME} + 1) sed -i \ -e "s/{FCGI_READ_TIMEOUT}/${FCGI_READ_TIMEOUT}/g" \ - "$ZABBIX_ETC_DIR/nginx.conf" + "$ZABBIX_CONF_DIR/nginx.conf" : ${HTTP_INDEX_FILE:="index.php"} sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/nginx.conf" + "$ZABBIX_CONF_DIR/nginx.conf" - if [ -f "$ZABBIX_ETC_DIR/nginx_ssl.conf" ]; then + if [ -f "$ZABBIX_CONF_DIR/nginx_ssl.conf" ]; then sed -i \ -e "s/{FCGI_READ_TIMEOUT}/${FCGI_READ_TIMEOUT}/g" \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi : ${ENABLE_WEB_ACCESS_LOG:="true"} @@ -267,10 +265,10 @@ prepare_zbx_web_config() { "$NGINX_CONF_FILE" sed -ri \ -e 's!^(\s*access_log).+\;!\1 off\;!g' \ - "$ZABBIX_ETC_DIR/nginx.conf" + "$ZABBIX_CONF_DIR/nginx.conf" sed -ri \ -e 's!^(\s*access_log).+\;!\1 off\;!g' \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi : ${EXPOSE_WEB_SERVER_INFO:="on"} diff --git a/Dockerfiles/web-nginx-mysql/rhel/Dockerfile b/Dockerfiles/web-nginx-mysql/rhel/Dockerfile index 73b68fabb..aa41fd57d 100644 --- a/Dockerfiles/web-nginx-mysql/rhel/Dockerfile +++ b/Dockerfiles/web-nginx-mysql/rhel/Dockerfile @@ -14,7 +14,8 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL description="Zabbix web-interface based on Nginx web server with MySQL database support" \ maintainer="alexey.pustovalov@zabbix.com" \ @@ -119,9 +120,9 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ --shell /sbin/nologin \ --home-dir /var/lib/zabbix/ \ zabbix && \ - mkdir -p /etc/zabbix && \ - mkdir -p /etc/zabbix/web && \ - mkdir -p /etc/zabbix/web/certs && \ + mkdir -p ${ZABBIX_CONF_DIR} && \ + mkdir -p ${ZABBIX_CONF_DIR}/web && \ + mkdir -p ${ZABBIX_CONF_DIR}/web/certs && \ mkdir -p /var/lib/php/session && \ rm -f /etc/nginx/conf.d/*.conf && \ rm -f /etc/php-fpm.conf.rpmnew && \ @@ -134,14 +135,14 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ rm -f locale/add_new_language.sh locale/update_po.sh locale/make_mo.sh && \ find /usr/share/zabbix/locale -name '*.po' | xargs rm -f && \ find /usr/share/zabbix/locale -name '*.sh' | xargs rm -f && \ - ln -s "/etc/zabbix/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ - ln -s "/etc/zabbix/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ + ln -s "${ZABBIX_CONF_DIR}/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ + ln -s "${ZABBIX_CONF_DIR}/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ cat /usr/share/zabbix/include/locales.inc.php | grep display | grep true | awk '{$1=$1};1' | \ cut -d"'" -f 2 | sort | \ xargs -I '{}' bash -c 'echo "{}" && localedef -c -i {} -f UTF-8 {}.UTF-8 2>/dev/null' && \ - chown --quiet -R zabbix:root /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chgrp -R 0 /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chmod -R g=u /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ chown --quiet -R zabbix:root /etc/nginx/ /etc/php-fpm.d/ /etc/php-fpm.conf /var/log/nginx/ && \ chgrp -R 0 /etc/nginx/ /etc/php-fpm.d/ /etc/php-fpm.conf /var/log/nginx/ && \ chmod -R g=u /etc/nginx/ /etc/php-fpm.d/ /etc/php-fpm.conf /var/log/nginx/ && \ diff --git a/Dockerfiles/web-nginx-mysql/rhel/docker-entrypoint.sh b/Dockerfiles/web-nginx-mysql/rhel/docker-entrypoint.sh index d40569d55..e598557b1 100755 --- a/Dockerfiles/web-nginx-mysql/rhel/docker-entrypoint.sh +++ b/Dockerfiles/web-nginx-mysql/rhel/docker-entrypoint.sh @@ -22,8 +22,6 @@ fi : ${DAEMON_USER:="nginx"} # Default directories -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Web interface www-root directory ZABBIX_WWW_ROOT="/usr/share/zabbix" # Nginx main configuration file @@ -140,21 +138,21 @@ prepare_web_server() { NGINX_SSL_CONFIG="/etc/ssl/nginx" if [ ! -f "/proc/net/if_inet6" ]; then - sed -i '/listen \[::\]/d' "$ZABBIX_ETC_DIR/nginx.conf" - sed -i '/listen \[::\]/d' "$ZABBIX_ETC_DIR/nginx_ssl.conf" + sed -i '/listen \[::\]/d' "$ZABBIX_CONF_DIR/nginx.conf" + sed -i '/listen \[::\]/d' "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi echo "** Adding Zabbix virtual host (HTTP)" - if [ -f "$ZABBIX_ETC_DIR/nginx.conf" ]; then - ln -s "$ZABBIX_ETC_DIR/nginx.conf" "$NGINX_CONFD_DIR" + if [ -f "$ZABBIX_CONF_DIR/nginx.conf" ]; then + ln -s "$ZABBIX_CONF_DIR/nginx.conf" "$NGINX_CONFD_DIR" else echo "**** Impossible to enable HTTP virtual host" fi if [ -f "$NGINX_SSL_CONFIG/ssl.crt" ] && [ -f "$NGINX_SSL_CONFIG/ssl.key" ] && [ -f "$NGINX_SSL_CONFIG/dhparam.pem" ]; then echo "** Enable SSL support for Nginx" - if [ -f "$ZABBIX_ETC_DIR/nginx_ssl.conf" ]; then - ln -s "$ZABBIX_ETC_DIR/nginx_ssl.conf" "$NGINX_CONFD_DIR" + if [ -f "$ZABBIX_CONF_DIR/nginx_ssl.conf" ]; then + ln -s "$ZABBIX_CONF_DIR/nginx_ssl.conf" "$NGINX_CONFD_DIR" else echo "**** Impossible to enable HTTPS virtual host" fi @@ -242,21 +240,21 @@ prepare_zbx_web_config() { FCGI_READ_TIMEOUT=$(expr ${ZBX_MAXEXECUTIONTIME} + 1) sed -i \ -e "s/{FCGI_READ_TIMEOUT}/${FCGI_READ_TIMEOUT}/g" \ - "$ZABBIX_ETC_DIR/nginx.conf" + "$ZABBIX_CONF_DIR/nginx.conf" : ${HTTP_INDEX_FILE:="index.php"} sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/nginx.conf" + "$ZABBIX_CONF_DIR/nginx.conf" - if [ -f "$ZABBIX_ETC_DIR/nginx_ssl.conf" ]; then + if [ -f "$ZABBIX_CONF_DIR/nginx_ssl.conf" ]; then sed -i \ -e "s/{FCGI_READ_TIMEOUT}/${FCGI_READ_TIMEOUT}/g" \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi : ${ENABLE_WEB_ACCESS_LOG:="true"} @@ -267,10 +265,10 @@ prepare_zbx_web_config() { "$NGINX_CONF_FILE" sed -ri \ -e 's!^(\s*access_log).+\;!\1 off\;!g' \ - "$ZABBIX_ETC_DIR/nginx.conf" + "$ZABBIX_CONF_DIR/nginx.conf" sed -ri \ -e 's!^(\s*access_log).+\;!\1 off\;!g' \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi : ${EXPOSE_WEB_SERVER_INFO:="on"} diff --git a/Dockerfiles/web-nginx-mysql/ubuntu/Dockerfile b/Dockerfiles/web-nginx-mysql/ubuntu/Dockerfile index ab2a24408..dc3ef4369 100644 --- a/Dockerfiles/web-nginx-mysql/ubuntu/Dockerfile +++ b/Dockerfiles/web-nginx-mysql/ubuntu/Dockerfile @@ -12,7 +12,8 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix web-interface based on Nginx web server with MySQL database support" \ @@ -66,9 +67,9 @@ RUN --mount=type=cache,target=/var/lib/apt/,sharing=locked \ --shell /sbin/nologin \ --home-dir /var/lib/zabbix/ \ zabbix && \ - mkdir -p /etc/zabbix && \ - mkdir -p /etc/zabbix/web && \ - mkdir -p /etc/zabbix/web/certs && \ + mkdir -p ${ZABBIX_CONF_DIR} && \ + mkdir -p ${ZABBIX_CONF_DIR}/web && \ + mkdir -p ${ZABBIX_CONF_DIR}/web/certs && \ mkdir -p /var/lib/php/session && \ rm -f /etc/nginx/conf.d/*.conf && \ rm -rf /var/cache/nginx/ && \ @@ -82,17 +83,17 @@ RUN --mount=type=cache,target=/var/lib/apt/,sharing=locked \ rm -f locale/add_new_language.sh locale/update_po.sh locale/make_mo.sh && \ find /usr/share/zabbix/locale -name '*.po' | xargs rm -f && \ find /usr/share/zabbix/locale -name '*.sh' | xargs rm -f && \ - ln -s "/etc/zabbix/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ - ln -s "/etc/zabbix/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ + ln -s "${ZABBIX_CONF_DIR}/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ + ln -s "${ZABBIX_CONF_DIR}/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ mkdir -p /var/lib/locales/supported.d/ && \ rm -f /var/lib/locales/supported.d/local && \ cat /usr/share/zabbix/include/locales.inc.php | grep display | grep true | awk '{$1=$1};1' | \ cut -d"'" -f 2 | sort | \ xargs -I '{}' bash -c 'echo "{}.UTF-8 UTF-8" >> /var/lib/locales/supported.d/local' && \ dpkg-reconfigure locales && \ - chown --quiet -R zabbix:root /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chgrp -R 0 /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chmod -R g=u /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ chown --quiet -R zabbix:root /etc/nginx/ /etc/php/8.3/fpm/php-fpm.conf /etc/php/8.3/fpm/pool.d/ && \ chgrp -R 0 /etc/nginx/ /etc/php/8.3/fpm/php-fpm.conf /etc/php/8.3/fpm/pool.d/ && \ chmod -R g=u /etc/nginx/ /etc/php/8.3/fpm/php-fpm.conf /etc/php/8.3/fpm/pool.d/ && \ diff --git a/Dockerfiles/web-nginx-mysql/ubuntu/docker-entrypoint.sh b/Dockerfiles/web-nginx-mysql/ubuntu/docker-entrypoint.sh index aed83addf..cc318e91d 100755 --- a/Dockerfiles/web-nginx-mysql/ubuntu/docker-entrypoint.sh +++ b/Dockerfiles/web-nginx-mysql/ubuntu/docker-entrypoint.sh @@ -22,8 +22,6 @@ fi : ${DAEMON_USER:="www-data"} # Default directories -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Web interface www-root directory ZABBIX_WWW_ROOT="/usr/share/zabbix" # Nginx main configuration file @@ -140,21 +138,21 @@ prepare_web_server() { NGINX_SSL_CONFIG="/etc/ssl/nginx" if [ ! -f "/proc/net/if_inet6" ]; then - sed -i '/listen \[::\]/d' "$ZABBIX_ETC_DIR/nginx.conf" - sed -i '/listen \[::\]/d' "$ZABBIX_ETC_DIR/nginx_ssl.conf" + sed -i '/listen \[::\]/d' "$ZABBIX_CONF_DIR/nginx.conf" + sed -i '/listen \[::\]/d' "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi echo "** Adding Zabbix virtual host (HTTP)" - if [ -f "$ZABBIX_ETC_DIR/nginx.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/nginx.conf" "$NGINX_CONFD_DIR/nginx.conf" + if [ -f "$ZABBIX_CONF_DIR/nginx.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/nginx.conf" "$NGINX_CONFD_DIR/nginx.conf" else echo "**** Impossible to enable HTTP virtual host" fi if [ -f "$NGINX_SSL_CONFIG/ssl.crt" ] && [ -f "$NGINX_SSL_CONFIG/ssl.key" ] && [ -f "$NGINX_SSL_CONFIG/dhparam.pem" ]; then echo "** Enable SSL support for Nginx" - if [ -f "$ZABBIX_ETC_DIR/nginx_ssl.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/nginx_ssl.conf" "$NGINX_CONFD_DIR/nginx_ssl.conf" + if [ -f "$ZABBIX_CONF_DIR/nginx_ssl.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/nginx_ssl.conf" "$NGINX_CONFD_DIR/nginx_ssl.conf" else echo "**** Impossible to enable HTTPS virtual host" fi @@ -242,21 +240,21 @@ prepare_zbx_web_config() { FCGI_READ_TIMEOUT=$(expr ${ZBX_MAXEXECUTIONTIME} + 1) sed -i \ -e "s/{FCGI_READ_TIMEOUT}/${FCGI_READ_TIMEOUT}/g" \ - "$ZABBIX_ETC_DIR/nginx.conf" + "$ZABBIX_CONF_DIR/nginx.conf" : ${HTTP_INDEX_FILE:="index.php"} sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/nginx.conf" + "$ZABBIX_CONF_DIR/nginx.conf" - if [ -f "$ZABBIX_ETC_DIR/nginx_ssl.conf" ]; then + if [ -f "$ZABBIX_CONF_DIR/nginx_ssl.conf" ]; then sed -i \ -e "s/{FCGI_READ_TIMEOUT}/${FCGI_READ_TIMEOUT}/g" \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi : ${ENABLE_WEB_ACCESS_LOG:="true"} @@ -267,10 +265,10 @@ prepare_zbx_web_config() { "$NGINX_CONF_FILE" sed -ri \ -e 's!^(\s*access_log).+\;!\1 off\;!g' \ - "$ZABBIX_ETC_DIR/nginx.conf" + "$ZABBIX_CONF_DIR/nginx.conf" sed -ri \ -e 's!^(\s*access_log).+\;!\1 off\;!g' \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi : ${EXPOSE_WEB_SERVER_INFO:="on"} diff --git a/Dockerfiles/web-nginx-pgsql/alpine/Dockerfile b/Dockerfiles/web-nginx-pgsql/alpine/Dockerfile index ab96d77fa..8af706964 100644 --- a/Dockerfiles/web-nginx-pgsql/alpine/Dockerfile +++ b/Dockerfiles/web-nginx-pgsql/alpine/Dockerfile @@ -12,7 +12,8 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix web-interface based on Nginx web server with PostgreSQL database support" \ @@ -74,9 +75,9 @@ RUN set -eux && \ --shell /sbin/nologin \ --home /var/lib/zabbix/ \ zabbix && \ - mkdir -p /etc/zabbix && \ - mkdir -p /etc/zabbix/web && \ - mkdir -p /etc/zabbix/web/certs && \ + mkdir -p ${ZABBIX_CONF_DIR} && \ + mkdir -p ${ZABBIX_CONF_DIR}/web && \ + mkdir -p ${ZABBIX_CONF_DIR}/web/certs && \ mkdir -p /var/lib/php/session && \ rm -rf /etc/php83/php-fpm.d/www.conf && \ rm -f /etc/nginx/http.d/*.conf && \ @@ -88,11 +89,11 @@ RUN set -eux && \ rm -f locale/add_new_language.sh locale/update_po.sh locale/make_mo.sh && \ find /usr/share/zabbix/locale -name '*.po' | xargs rm -f && \ find /usr/share/zabbix/locale -name '*.sh' | xargs rm -f && \ - ln -s "/etc/zabbix/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ - ln -s "/etc/zabbix/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ - chown --quiet -R zabbix:root /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chgrp -R 0 /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chmod -R g=u /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + ln -s "${ZABBIX_CONF_DIR}/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ + ln -s "${ZABBIX_CONF_DIR}/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ chown --quiet -R zabbix:root /etc/nginx/ /etc/php83/php-fpm.d/ /etc/php83/php-fpm.conf && \ chgrp -R 0 /etc/nginx/ /etc/php83/php-fpm.d/ /etc/php83/php-fpm.conf && \ chmod -R g=u /etc/nginx/ /etc/php83/php-fpm.d/ /etc/php83/php-fpm.conf && \ diff --git a/Dockerfiles/web-nginx-pgsql/alpine/docker-entrypoint.sh b/Dockerfiles/web-nginx-pgsql/alpine/docker-entrypoint.sh index d2522d255..ff20f1d7b 100755 --- a/Dockerfiles/web-nginx-pgsql/alpine/docker-entrypoint.sh +++ b/Dockerfiles/web-nginx-pgsql/alpine/docker-entrypoint.sh @@ -22,8 +22,6 @@ fi : ${DAEMON_USER:="nginx"} # Default directories -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Web interface www-root directory ZABBIX_WWW_ROOT="/usr/share/zabbix" # Nginx main configuration file @@ -139,21 +137,21 @@ prepare_web_server() { NGINX_SSL_CONFIG="/etc/ssl/nginx" if [ ! -f "/proc/net/if_inet6" ]; then - sed -i '/listen \[::\]/d' "$ZABBIX_ETC_DIR/nginx.conf" - sed -i '/listen \[::\]/d' "$ZABBIX_ETC_DIR/nginx_ssl.conf" + sed -i '/listen \[::\]/d' "$ZABBIX_CONF_DIR/nginx.conf" + sed -i '/listen \[::\]/d' "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi echo "** Adding Zabbix virtual host (HTTP)" - if [ -f "$ZABBIX_ETC_DIR/nginx.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/nginx.conf" "$NGINX_CONFD_DIR/nginx.conf" + if [ -f "$ZABBIX_CONF_DIR/nginx.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/nginx.conf" "$NGINX_CONFD_DIR/nginx.conf" else echo "**** Impossible to enable HTTP virtual host" fi if [ -f "$NGINX_SSL_CONFIG/ssl.crt" ] && [ -f "$NGINX_SSL_CONFIG/ssl.key" ] && [ -f "$NGINX_SSL_CONFIG/dhparam.pem" ]; then echo "** Enable SSL support for Nginx" - if [ -f "$ZABBIX_ETC_DIR/nginx_ssl.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/nginx_ssl.conf" "$NGINX_CONFD_DIR/nginx_ssl.conf" + if [ -f "$ZABBIX_CONF_DIR/nginx_ssl.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/nginx_ssl.conf" "$NGINX_CONFD_DIR/nginx_ssl.conf" else echo "**** Impossible to enable HTTPS virtual host" fi @@ -241,21 +239,21 @@ prepare_zbx_web_config() { FCGI_READ_TIMEOUT=$(expr ${ZBX_MAXEXECUTIONTIME} + 1) sed -i \ -e "s/{FCGI_READ_TIMEOUT}/${FCGI_READ_TIMEOUT}/g" \ - "$ZABBIX_ETC_DIR/nginx.conf" + "$ZABBIX_CONF_DIR/nginx.conf" : ${HTTP_INDEX_FILE:="index.php"} sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/nginx.conf" + "$ZABBIX_CONF_DIR/nginx.conf" - if [ -f "$ZABBIX_ETC_DIR/nginx_ssl.conf" ]; then + if [ -f "$ZABBIX_CONF_DIR/nginx_ssl.conf" ]; then sed -i \ -e "s/{FCGI_READ_TIMEOUT}/${FCGI_READ_TIMEOUT}/g" \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi : ${ENABLE_WEB_ACCESS_LOG:="true"} @@ -266,10 +264,10 @@ prepare_zbx_web_config() { "$NGINX_CONF_FILE" sed -ri \ -e 's!^(\s*access_log).+\;!\1 off\;!g' \ - "$ZABBIX_ETC_DIR/nginx.conf" + "$ZABBIX_CONF_DIR/nginx.conf" sed -ri \ -e 's!^(\s*access_log).+\;!\1 off\;!g' \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi : ${EXPOSE_WEB_SERVER_INFO:="on"} diff --git a/Dockerfiles/web-nginx-pgsql/centos/Dockerfile b/Dockerfiles/web-nginx-pgsql/centos/Dockerfile index f0445e666..794b68dd2 100644 --- a/Dockerfiles/web-nginx-pgsql/centos/Dockerfile +++ b/Dockerfiles/web-nginx-pgsql/centos/Dockerfile @@ -12,7 +12,8 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix web-interface based on Nginx web server with PostgreSQL database support" \ @@ -90,9 +91,9 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ --shell /sbin/nologin \ --home-dir /var/lib/zabbix/ \ zabbix && \ - mkdir -p /etc/zabbix && \ - mkdir -p /etc/zabbix/web && \ - mkdir -p /etc/zabbix/web/certs && \ + mkdir -p ${ZABBIX_CONF_DIR} && \ + mkdir -p ${ZABBIX_CONF_DIR}/web && \ + mkdir -p ${ZABBIX_CONF_DIR}/web/certs && \ mkdir -p /var/lib/php/session && \ rm -f /etc/nginx/conf.d/*.conf && \ rm -f /etc/php-fpm.d/www.conf && \ @@ -104,14 +105,14 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ rm -f locale/add_new_language.sh locale/update_po.sh locale/make_mo.sh && \ find /usr/share/zabbix/locale -name '*.po' | xargs rm -f && \ find /usr/share/zabbix/locale -name '*.sh' | xargs rm -f && \ - ln -s "/etc/zabbix/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ - ln -s "/etc/zabbix/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ + ln -s "${ZABBIX_CONF_DIR}/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ + ln -s "${ZABBIX_CONF_DIR}/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ cat /usr/share/zabbix/include/locales.inc.php | grep display | grep true | awk '{$1=$1};1' | \ cut -d"'" -f 2 | sort | \ xargs -I '{}' bash -c 'echo "{}" && localedef -c -i {} -f UTF-8 {}.UTF-8 2>/dev/null' && \ - chown --quiet -R zabbix:root /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chgrp -R 0 /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chmod -R g=u /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ chown --quiet -R zabbix:root /etc/nginx/ /etc/php-fpm.d/ /etc/php-fpm.conf /var/log/nginx/ && \ chgrp -R 0 /etc/nginx/ /etc/php-fpm.d/ /etc/php-fpm.conf /var/log/nginx/ && \ chmod -R g=u /etc/nginx/ /etc/php-fpm.d/ /etc/php-fpm.conf /var/log/nginx/ && \ diff --git a/Dockerfiles/web-nginx-pgsql/centos/docker-entrypoint.sh b/Dockerfiles/web-nginx-pgsql/centos/docker-entrypoint.sh index 2589f3fc5..cc2a12cb5 100755 --- a/Dockerfiles/web-nginx-pgsql/centos/docker-entrypoint.sh +++ b/Dockerfiles/web-nginx-pgsql/centos/docker-entrypoint.sh @@ -22,8 +22,6 @@ fi : ${DAEMON_USER:="nginx"} # Default directories -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Web interface www-root directory ZABBIX_WWW_ROOT="/usr/share/zabbix" # Nginx main configuration file @@ -139,21 +137,21 @@ prepare_web_server() { NGINX_SSL_CONFIG="/etc/ssl/nginx" if [ ! -f "/proc/net/if_inet6" ]; then - sed -i '/listen \[::\]/d' "$ZABBIX_ETC_DIR/nginx.conf" - sed -i '/listen \[::\]/d' "$ZABBIX_ETC_DIR/nginx_ssl.conf" + sed -i '/listen \[::\]/d' "$ZABBIX_CONF_DIR/nginx.conf" + sed -i '/listen \[::\]/d' "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi echo "** Adding Zabbix virtual host (HTTP)" - if [ -f "$ZABBIX_ETC_DIR/nginx.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/nginx.conf" "$NGINX_CONFD_DIR/nginx.conf" + if [ -f "$ZABBIX_CONF_DIR/nginx.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/nginx.conf" "$NGINX_CONFD_DIR/nginx.conf" else echo "**** Impossible to enable HTTP virtual host" fi if [ -f "$NGINX_SSL_CONFIG/ssl.crt" ] && [ -f "$NGINX_SSL_CONFIG/ssl.key" ] && [ -f "$NGINX_SSL_CONFIG/dhparam.pem" ]; then echo "** Enable SSL support for Nginx" - if [ -f "$ZABBIX_ETC_DIR/nginx_ssl.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/nginx_ssl.conf" "$NGINX_CONFD_DIR/nginx_ssl.conf" + if [ -f "$ZABBIX_CONF_DIR/nginx_ssl.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/nginx_ssl.conf" "$NGINX_CONFD_DIR/nginx_ssl.conf" else echo "**** Impossible to enable HTTPS virtual host" fi @@ -241,21 +239,21 @@ prepare_zbx_web_config() { FCGI_READ_TIMEOUT=$(expr ${ZBX_MAXEXECUTIONTIME} + 1) sed -i \ -e "s/{FCGI_READ_TIMEOUT}/${FCGI_READ_TIMEOUT}/g" \ - "$ZABBIX_ETC_DIR/nginx.conf" + "$ZABBIX_CONF_DIR/nginx.conf" : ${HTTP_INDEX_FILE:="index.php"} sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/nginx.conf" + "$ZABBIX_CONF_DIR/nginx.conf" - if [ -f "$ZABBIX_ETC_DIR/nginx_ssl.conf" ]; then + if [ -f "$ZABBIX_CONF_DIR/nginx_ssl.conf" ]; then sed -i \ -e "s/{FCGI_READ_TIMEOUT}/${FCGI_READ_TIMEOUT}/g" \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi : ${ENABLE_WEB_ACCESS_LOG:="true"} @@ -269,7 +267,7 @@ prepare_zbx_web_config() { "$NGINX_CONF_FILE" sed -ri \ -e 's!^(\s*access_log).+\;!\1 off\;!g' \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi : ${EXPOSE_WEB_SERVER_INFO:="on"} diff --git a/Dockerfiles/web-nginx-pgsql/ol/Dockerfile b/Dockerfiles/web-nginx-pgsql/ol/Dockerfile index a3b56f932..0cda13cb5 100644 --- a/Dockerfiles/web-nginx-pgsql/ol/Dockerfile +++ b/Dockerfiles/web-nginx-pgsql/ol/Dockerfile @@ -12,7 +12,8 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix web-interface based on Nginx web server with PostgreSQL database support" \ @@ -77,9 +78,9 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ --shell /sbin/nologin \ --home-dir /var/lib/zabbix/ \ zabbix && \ - mkdir -p /etc/zabbix && \ - mkdir -p /etc/zabbix/web && \ - mkdir -p /etc/zabbix/web/certs && \ + mkdir -p ${ZABBIX_CONF_DIR} && \ + mkdir -p ${ZABBIX_CONF_DIR}/web && \ + mkdir -p ${ZABBIX_CONF_DIR}/web/certs && \ mkdir -p /var/lib/php/session && \ rm -f /etc/nginx/conf.d/*.conf && \ rm -f /etc/php-fpm.d/www.conf && \ @@ -91,14 +92,14 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ rm -f locale/add_new_language.sh locale/update_po.sh locale/make_mo.sh && \ find /usr/share/zabbix/locale -name '*.po' | xargs rm -f && \ find /usr/share/zabbix/locale -name '*.sh' | xargs rm -f && \ - ln -s "/etc/zabbix/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ - ln -s "/etc/zabbix/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ + ln -s "${ZABBIX_CONF_DIR}/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ + ln -s "${ZABBIX_CONF_DIR}/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ cat /usr/share/zabbix/include/locales.inc.php | grep display | grep true | awk '{$1=$1};1' | \ cut -d"'" -f 2 | sort | \ xargs -I '{}' bash -c 'echo "{}" && localedef -c -i {} -f UTF-8 {}.UTF-8 2>/dev/null' && \ - chown --quiet -R zabbix:root /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chgrp -R 0 /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chmod -R g=u /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ chown --quiet -R zabbix:root /etc/nginx/ /etc/php-fpm.d/ /etc/php-fpm.conf /var/log/nginx/ && \ chgrp -R 0 /etc/nginx/ /etc/php-fpm.d/ /etc/php-fpm.conf /var/log/nginx/ && \ chmod -R g=u /etc/nginx/ /etc/php-fpm.d/ /etc/php-fpm.conf /var/log/nginx/ && \ diff --git a/Dockerfiles/web-nginx-pgsql/ol/docker-entrypoint.sh b/Dockerfiles/web-nginx-pgsql/ol/docker-entrypoint.sh index 2589f3fc5..cc2a12cb5 100755 --- a/Dockerfiles/web-nginx-pgsql/ol/docker-entrypoint.sh +++ b/Dockerfiles/web-nginx-pgsql/ol/docker-entrypoint.sh @@ -22,8 +22,6 @@ fi : ${DAEMON_USER:="nginx"} # Default directories -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Web interface www-root directory ZABBIX_WWW_ROOT="/usr/share/zabbix" # Nginx main configuration file @@ -139,21 +137,21 @@ prepare_web_server() { NGINX_SSL_CONFIG="/etc/ssl/nginx" if [ ! -f "/proc/net/if_inet6" ]; then - sed -i '/listen \[::\]/d' "$ZABBIX_ETC_DIR/nginx.conf" - sed -i '/listen \[::\]/d' "$ZABBIX_ETC_DIR/nginx_ssl.conf" + sed -i '/listen \[::\]/d' "$ZABBIX_CONF_DIR/nginx.conf" + sed -i '/listen \[::\]/d' "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi echo "** Adding Zabbix virtual host (HTTP)" - if [ -f "$ZABBIX_ETC_DIR/nginx.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/nginx.conf" "$NGINX_CONFD_DIR/nginx.conf" + if [ -f "$ZABBIX_CONF_DIR/nginx.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/nginx.conf" "$NGINX_CONFD_DIR/nginx.conf" else echo "**** Impossible to enable HTTP virtual host" fi if [ -f "$NGINX_SSL_CONFIG/ssl.crt" ] && [ -f "$NGINX_SSL_CONFIG/ssl.key" ] && [ -f "$NGINX_SSL_CONFIG/dhparam.pem" ]; then echo "** Enable SSL support for Nginx" - if [ -f "$ZABBIX_ETC_DIR/nginx_ssl.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/nginx_ssl.conf" "$NGINX_CONFD_DIR/nginx_ssl.conf" + if [ -f "$ZABBIX_CONF_DIR/nginx_ssl.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/nginx_ssl.conf" "$NGINX_CONFD_DIR/nginx_ssl.conf" else echo "**** Impossible to enable HTTPS virtual host" fi @@ -241,21 +239,21 @@ prepare_zbx_web_config() { FCGI_READ_TIMEOUT=$(expr ${ZBX_MAXEXECUTIONTIME} + 1) sed -i \ -e "s/{FCGI_READ_TIMEOUT}/${FCGI_READ_TIMEOUT}/g" \ - "$ZABBIX_ETC_DIR/nginx.conf" + "$ZABBIX_CONF_DIR/nginx.conf" : ${HTTP_INDEX_FILE:="index.php"} sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/nginx.conf" + "$ZABBIX_CONF_DIR/nginx.conf" - if [ -f "$ZABBIX_ETC_DIR/nginx_ssl.conf" ]; then + if [ -f "$ZABBIX_CONF_DIR/nginx_ssl.conf" ]; then sed -i \ -e "s/{FCGI_READ_TIMEOUT}/${FCGI_READ_TIMEOUT}/g" \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi : ${ENABLE_WEB_ACCESS_LOG:="true"} @@ -269,7 +267,7 @@ prepare_zbx_web_config() { "$NGINX_CONF_FILE" sed -ri \ -e 's!^(\s*access_log).+\;!\1 off\;!g' \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi : ${EXPOSE_WEB_SERVER_INFO:="on"} diff --git a/Dockerfiles/web-nginx-pgsql/rhel/Dockerfile b/Dockerfiles/web-nginx-pgsql/rhel/Dockerfile index 8bcddcbbb..36c03916f 100644 --- a/Dockerfiles/web-nginx-pgsql/rhel/Dockerfile +++ b/Dockerfiles/web-nginx-pgsql/rhel/Dockerfile @@ -14,7 +14,8 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL description="Zabbix web-interface based on Nginx web server with PostgreSQL database support" \ maintainer="alexey.pustovalov@zabbix.com" \ @@ -120,9 +121,9 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ --shell /sbin/nologin \ --home-dir /var/lib/zabbix/ \ zabbix && \ - mkdir -p /etc/zabbix && \ - mkdir -p /etc/zabbix/web && \ - mkdir -p /etc/zabbix/web/certs && \ + mkdir -p ${ZABBIX_CONF_DIR} && \ + mkdir -p ${ZABBIX_CONF_DIR}/web && \ + mkdir -p ${ZABBIX_CONF_DIR}/web/certs && \ mkdir -p /var/lib/php/session && \ rm -f /etc/nginx/conf.d/*.conf && \ rm -f /etc/php-fpm.conf.rpmnew && \ @@ -135,14 +136,14 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ rm -f locale/add_new_language.sh locale/update_po.sh locale/make_mo.sh && \ find /usr/share/zabbix/locale -name '*.po' | xargs rm -f && \ find /usr/share/zabbix/locale -name '*.sh' | xargs rm -f && \ - ln -s "/etc/zabbix/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ - ln -s "/etc/zabbix/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ + ln -s "${ZABBIX_CONF_DIR}/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ + ln -s "${ZABBIX_CONF_DIR}/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ cat /usr/share/zabbix/include/locales.inc.php | grep display | grep true | awk '{$1=$1};1' | \ cut -d"'" -f 2 | sort | \ xargs -I '{}' bash -c 'echo "{}" && localedef -c -i {} -f UTF-8 {}.UTF-8 2>/dev/null' && \ - chown --quiet -R zabbix:root /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chgrp -R 0 /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chmod -R g=u /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ chown --quiet -R zabbix:root /etc/nginx/ /etc/php-fpm.d/ /etc/php-fpm.conf /var/log/nginx/ && \ chgrp -R 0 /etc/nginx/ /etc/php-fpm.d/ /etc/php-fpm.conf /var/log/nginx/ && \ chmod -R g=u /etc/nginx/ /etc/php-fpm.d/ /etc/php-fpm.conf /var/log/nginx/ && \ diff --git a/Dockerfiles/web-nginx-pgsql/rhel/docker-entrypoint.sh b/Dockerfiles/web-nginx-pgsql/rhel/docker-entrypoint.sh index 2589f3fc5..cc2a12cb5 100755 --- a/Dockerfiles/web-nginx-pgsql/rhel/docker-entrypoint.sh +++ b/Dockerfiles/web-nginx-pgsql/rhel/docker-entrypoint.sh @@ -22,8 +22,6 @@ fi : ${DAEMON_USER:="nginx"} # Default directories -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Web interface www-root directory ZABBIX_WWW_ROOT="/usr/share/zabbix" # Nginx main configuration file @@ -139,21 +137,21 @@ prepare_web_server() { NGINX_SSL_CONFIG="/etc/ssl/nginx" if [ ! -f "/proc/net/if_inet6" ]; then - sed -i '/listen \[::\]/d' "$ZABBIX_ETC_DIR/nginx.conf" - sed -i '/listen \[::\]/d' "$ZABBIX_ETC_DIR/nginx_ssl.conf" + sed -i '/listen \[::\]/d' "$ZABBIX_CONF_DIR/nginx.conf" + sed -i '/listen \[::\]/d' "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi echo "** Adding Zabbix virtual host (HTTP)" - if [ -f "$ZABBIX_ETC_DIR/nginx.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/nginx.conf" "$NGINX_CONFD_DIR/nginx.conf" + if [ -f "$ZABBIX_CONF_DIR/nginx.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/nginx.conf" "$NGINX_CONFD_DIR/nginx.conf" else echo "**** Impossible to enable HTTP virtual host" fi if [ -f "$NGINX_SSL_CONFIG/ssl.crt" ] && [ -f "$NGINX_SSL_CONFIG/ssl.key" ] && [ -f "$NGINX_SSL_CONFIG/dhparam.pem" ]; then echo "** Enable SSL support for Nginx" - if [ -f "$ZABBIX_ETC_DIR/nginx_ssl.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/nginx_ssl.conf" "$NGINX_CONFD_DIR/nginx_ssl.conf" + if [ -f "$ZABBIX_CONF_DIR/nginx_ssl.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/nginx_ssl.conf" "$NGINX_CONFD_DIR/nginx_ssl.conf" else echo "**** Impossible to enable HTTPS virtual host" fi @@ -241,21 +239,21 @@ prepare_zbx_web_config() { FCGI_READ_TIMEOUT=$(expr ${ZBX_MAXEXECUTIONTIME} + 1) sed -i \ -e "s/{FCGI_READ_TIMEOUT}/${FCGI_READ_TIMEOUT}/g" \ - "$ZABBIX_ETC_DIR/nginx.conf" + "$ZABBIX_CONF_DIR/nginx.conf" : ${HTTP_INDEX_FILE:="index.php"} sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/nginx.conf" + "$ZABBIX_CONF_DIR/nginx.conf" - if [ -f "$ZABBIX_ETC_DIR/nginx_ssl.conf" ]; then + if [ -f "$ZABBIX_CONF_DIR/nginx_ssl.conf" ]; then sed -i \ -e "s/{FCGI_READ_TIMEOUT}/${FCGI_READ_TIMEOUT}/g" \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi : ${ENABLE_WEB_ACCESS_LOG:="true"} @@ -269,7 +267,7 @@ prepare_zbx_web_config() { "$NGINX_CONF_FILE" sed -ri \ -e 's!^(\s*access_log).+\;!\1 off\;!g' \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi : ${EXPOSE_WEB_SERVER_INFO:="on"} diff --git a/Dockerfiles/web-nginx-pgsql/ubuntu/Dockerfile b/Dockerfiles/web-nginx-pgsql/ubuntu/Dockerfile index 479c25d73..73215b1b2 100644 --- a/Dockerfiles/web-nginx-pgsql/ubuntu/Dockerfile +++ b/Dockerfiles/web-nginx-pgsql/ubuntu/Dockerfile @@ -12,7 +12,8 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix web-interface based on Nginx web server with PostgreSQL database support" \ @@ -66,9 +67,9 @@ RUN --mount=type=cache,target=/var/lib/apt/,sharing=locked \ --shell /sbin/nologin \ --home-dir /var/lib/zabbix/ \ zabbix && \ - mkdir -p /etc/zabbix && \ - mkdir -p /etc/zabbix/web && \ - mkdir -p /etc/zabbix/web/certs && \ + mkdir -p ${ZABBIX_CONF_DIR} && \ + mkdir -p ${ZABBIX_CONF_DIR}/web && \ + mkdir -p ${ZABBIX_CONF_DIR}/web/certs && \ mkdir -p /var/lib/php/session && \ rm -f /etc/nginx/conf.d/*.conf && \ rm -rf /var/cache/nginx/ && \ @@ -82,17 +83,17 @@ RUN --mount=type=cache,target=/var/lib/apt/,sharing=locked \ rm -f locale/add_new_language.sh locale/update_po.sh locale/make_mo.sh && \ find /usr/share/zabbix/locale -name '*.po' | xargs rm -f && \ find /usr/share/zabbix/locale -name '*.sh' | xargs rm -f && \ - ln -s "/etc/zabbix/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ - ln -s "/etc/zabbix/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ + ln -s "${ZABBIX_CONF_DIR}/web/zabbix.conf.php" "/usr/share/zabbix/conf/zabbix.conf.php" && \ + ln -s "${ZABBIX_CONF_DIR}/web/maintenance.inc.php" "/usr/share/zabbix/conf/maintenance.inc.php" && \ mkdir -p /var/lib/locales/supported.d/ && \ rm -f /var/lib/locales/supported.d/local && \ cat /usr/share/zabbix/include/locales.inc.php | grep display | grep true | awk '{$1=$1};1' | \ cut -d"'" -f 2 | sort | \ xargs -I '{}' bash -c 'echo "{}.UTF-8 UTF-8" >> /var/lib/locales/supported.d/local' && \ dpkg-reconfigure locales && \ - chown --quiet -R zabbix:root /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chgrp -R 0 /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ - chmod -R g=u /etc/zabbix/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chgrp -R 0 ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ + chmod -R g=u ${ZABBIX_CONF_DIR}/ /usr/share/zabbix/include/defines.inc.php /usr/share/zabbix/modules/ && \ chown --quiet -R zabbix:root /etc/nginx/ /etc/php/8.3/fpm/php-fpm.conf /etc/php/8.3/fpm/pool.d/ && \ chgrp -R 0 /etc/nginx/ /etc/php/8.3/fpm/php-fpm.conf /etc/php/8.3/fpm/pool.d/ && \ chmod -R g=u /etc/nginx/ /etc/php/8.3/fpm/php-fpm.conf /etc/php/8.3/fpm/pool.d/ && \ diff --git a/Dockerfiles/web-nginx-pgsql/ubuntu/docker-entrypoint.sh b/Dockerfiles/web-nginx-pgsql/ubuntu/docker-entrypoint.sh index a49a169b8..575bdf766 100755 --- a/Dockerfiles/web-nginx-pgsql/ubuntu/docker-entrypoint.sh +++ b/Dockerfiles/web-nginx-pgsql/ubuntu/docker-entrypoint.sh @@ -22,8 +22,6 @@ fi : ${DAEMON_USER:="www-data"} # Default directories -# Configuration files directory -ZABBIX_ETC_DIR="/etc/zabbix" # Web interface www-root directory ZABBIX_WWW_ROOT="/usr/share/zabbix" # Nginx main configuration file @@ -139,21 +137,21 @@ prepare_web_server() { NGINX_SSL_CONFIG="/etc/ssl/nginx" if [ ! -f "/proc/net/if_inet6" ]; then - sed -i '/listen \[::\]/d' "$ZABBIX_ETC_DIR/nginx.conf" - sed -i '/listen \[::\]/d' "$ZABBIX_ETC_DIR/nginx_ssl.conf" + sed -i '/listen \[::\]/d' "$ZABBIX_CONF_DIR/nginx.conf" + sed -i '/listen \[::\]/d' "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi echo "** Adding Zabbix virtual host (HTTP)" - if [ -f "$ZABBIX_ETC_DIR/nginx.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/nginx.conf" "$NGINX_CONFD_DIR/nginx.conf" + if [ -f "$ZABBIX_CONF_DIR/nginx.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/nginx.conf" "$NGINX_CONFD_DIR/nginx.conf" else echo "**** Impossible to enable HTTP virtual host" fi if [ -f "$NGINX_SSL_CONFIG/ssl.crt" ] && [ -f "$NGINX_SSL_CONFIG/ssl.key" ] && [ -f "$NGINX_SSL_CONFIG/dhparam.pem" ]; then echo "** Enable SSL support for Nginx" - if [ -f "$ZABBIX_ETC_DIR/nginx_ssl.conf" ]; then - ln -sfT "$ZABBIX_ETC_DIR/nginx_ssl.conf" "$NGINX_CONFD_DIR/nginx_ssl.conf" + if [ -f "$ZABBIX_CONF_DIR/nginx_ssl.conf" ]; then + ln -sfT "$ZABBIX_CONF_DIR/nginx_ssl.conf" "$NGINX_CONFD_DIR/nginx_ssl.conf" else echo "**** Impossible to enable HTTPS virtual host" fi @@ -241,21 +239,21 @@ prepare_zbx_web_config() { FCGI_READ_TIMEOUT=$(expr ${ZBX_MAXEXECUTIONTIME} + 1) sed -i \ -e "s/{FCGI_READ_TIMEOUT}/${FCGI_READ_TIMEOUT}/g" \ - "$ZABBIX_ETC_DIR/nginx.conf" + "$ZABBIX_CONF_DIR/nginx.conf" : ${HTTP_INDEX_FILE:="index.php"} sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/nginx.conf" + "$ZABBIX_CONF_DIR/nginx.conf" - if [ -f "$ZABBIX_ETC_DIR/nginx_ssl.conf" ]; then + if [ -f "$ZABBIX_CONF_DIR/nginx_ssl.conf" ]; then sed -i \ -e "s/{FCGI_READ_TIMEOUT}/${FCGI_READ_TIMEOUT}/g" \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" sed -i \ -e "s/{HTTP_INDEX_FILE}/${HTTP_INDEX_FILE}/g" \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi : ${ENABLE_WEB_ACCESS_LOG:="true"} @@ -269,7 +267,7 @@ prepare_zbx_web_config() { "$NGINX_CONF_FILE" sed -ri \ -e 's!^(\s*access_log).+\;!\1 off\;!g' \ - "$ZABBIX_ETC_DIR/nginx_ssl.conf" + "$ZABBIX_CONF_DIR/nginx_ssl.conf" fi : ${EXPOSE_WEB_SERVER_INFO:="on"} diff --git a/Dockerfiles/web-service/alpine/Dockerfile b/Dockerfiles/web-service/alpine/Dockerfile index 2f07476ce..3f770d820 100644 --- a/Dockerfiles/web-service/alpine/Dockerfile +++ b/Dockerfiles/web-service/alpine/Dockerfile @@ -12,7 +12,9 @@ ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git ENV TERM=xterm \ - ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} + ZBX_VERSION=${ZBX_VERSION} ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \ + ZABBIX_CONF_DIR="/etc/zabbix" LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix web service for performing various tasks using headless web browser" \ @@ -27,7 +29,7 @@ LABEL org.opencontainers.image.authors="Alexey Pustovalov