From 8fff86667e95174fb13014f49f79f21e9cf8f635 Mon Sep 17 00:00:00 2001 From: Alexey Pustovalov Date: Mon, 16 Mar 2026 22:27:35 +0900 Subject: [PATCH] Updated Dockerfiles for Oracle Linux images --- Dockerfiles/agent/centos/Dockerfile | 2 +- Dockerfiles/agent/ol/Dockerfile | 52 ++- Dockerfiles/agent2/centos/Dockerfile | 2 +- Dockerfiles/agent2/ol/Dockerfile | 56 ++-- Dockerfiles/build-base/ol/Dockerfile | 9 +- Dockerfiles/build-mysql/ol/Dockerfile | 300 +++++++++-------- Dockerfiles/build-pgsql/ol/Dockerfile | 305 +++++++++--------- Dockerfiles/build-sqlite3/ol/Dockerfile | 258 ++++++++------- Dockerfiles/java-gateway/centos/Dockerfile | 11 +- Dockerfiles/java-gateway/ol/Dockerfile | 42 +-- Dockerfiles/proxy-mysql/centos/Dockerfile | 34 +- Dockerfiles/proxy-mysql/ol/Dockerfile | 98 +++--- Dockerfiles/server-mysql/centos/Dockerfile | 36 ++- Dockerfiles/server-mysql/ol/Dockerfile | 86 ++--- Dockerfiles/snmptraps/centos/Dockerfile | 19 +- Dockerfiles/snmptraps/ol/Dockerfile | 37 ++- .../web-apache-mysql/centos/Dockerfile | 32 +- Dockerfiles/web-apache-mysql/ol/Dockerfile | 93 +++--- .../web-apache-pgsql/centos/Dockerfile | 32 +- Dockerfiles/web-apache-pgsql/ol/Dockerfile | 93 +++--- Dockerfiles/web-nginx-mysql/centos/Dockerfile | 32 +- Dockerfiles/web-nginx-mysql/ol/Dockerfile | 83 ++--- Dockerfiles/web-nginx-pgsql/centos/Dockerfile | 32 +- Dockerfiles/web-nginx-pgsql/ol/Dockerfile | 89 ++--- Dockerfiles/web-service/centos/Dockerfile | 32 +- Dockerfiles/web-service/ol/Dockerfile | 28 +- 26 files changed, 1014 insertions(+), 879 deletions(-) diff --git a/Dockerfiles/agent/centos/Dockerfile b/Dockerfiles/agent/centos/Dockerfile index 4ab6348af..ed0d0b4bd 100644 --- a/Dockerfiles/agent/centos/Dockerfile +++ b/Dockerfiles/agent/centos/Dockerfile @@ -108,7 +108,7 @@ EXPOSE 10050/tcp WORKDIR ${ZABBIX_USER_HOME_DIR} -COPY ["docker-entrypoint.sh", "/usr/bin/"] +COPY docker-entrypoint.sh /usr/bin/ ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"] diff --git a/Dockerfiles/agent/ol/Dockerfile b/Dockerfiles/agent/ol/Dockerfile index e14a09859..de2cfd1f8 100644 --- a/Dockerfiles/agent/ol/Dockerfile +++ b/Dockerfiles/agent/ol/Dockerfile @@ -1,4 +1,4 @@ -# syntax=docker/dockerfile:1 +# syntax=docker/dockerfile:1.6 ARG OS_BASE_IMAGE=container-registry.oracle.com/os/oraclelinux:10-slim ARG MAJOR_VERSION=7.4 ARG ZBX_VERSION=${MAJOR_VERSION}.8 @@ -13,9 +13,10 @@ 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} \ - ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \ - ZABBIX_CONF_DIR="/etc/zabbix" + ZBX_VERSION=${ZBX_VERSION} \ + ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_USER_HOME_DIR=/var/lib/zabbix \ + ZABBIX_CONF_DIR=/etc/zabbix ENV ZBX_LOADMODULEPATH="${ZABBIX_USER_HOME_DIR}/modules" \ ZBX_USERPARAMETERDIR=${ZABBIX_USER_HOME_DIR}/user_scripts @@ -32,10 +33,11 @@ LABEL org.opencontainers.image.authors="Alexey Pustovalov > /etc/sudoers.d/zabbix && \ - mkdir -p ${ZABBIX_CONF_DIR} && \ - mkdir -p ${ZABBIX_CONF_DIR}/zabbix_agentd.d && \ - mkdir -p ${ZABBIX_CONF_DIR}/zabbix_agent2.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}/buffer && \ - mkdir -p ${ZBX_USERPARAMETERDIR} && \ - chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf \ + mkdir -p ${ZABBIX_CONF_DIR} \ + ${ZABBIX_CONF_DIR}/zabbix_agentd.d \ + ${ZABBIX_CONF_DIR}/zabbix_agent2.d \ + ${ZABBIX_USER_HOME_DIR} \ + ${ZABBIX_USER_HOME_DIR}/enc \ + ${ZABBIX_USER_HOME_DIR}/enc_internal \ + ${ZABBIX_USER_HOME_DIR}/buffer \ + ${ZBX_USERPARAMETERDIR} && \ + FIX_PERM_LIST="\ + ${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf \ ${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \ ${ZABBIX_CONF_DIR}/zabbix_agent2.d/ \ - ${ZABBIX_USER_HOME_DIR}/ && \ - chown --quiet zabbix:root ${ZABBIX_CONF_DIR}/ && \ - chgrp -R 0 ${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf \ - ${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \ - ${ZABBIX_CONF_DIR}/zabbix_agent2.d/ \ - ${ZABBIX_USER_HOME_DIR}/ && \ - chgrp 0 ${ZABBIX_CONF_DIR} && \ - chmod -R g=u ${ZABBIX_CONF_DIR}/zabbix_agent2_item_keys.conf \ - ${ZABBIX_CONF_DIR}/zabbix_agentd.d/ \ - ${ZABBIX_CONF_DIR}/zabbix_agent2.d/ \ - ${ZABBIX_USER_HOME_DIR}/ && \ + ${ZABBIX_USER_HOME_DIR}/" && \ + chown --quiet -R zabbix:0 ${FIX_PERM_LIST} && \ + chmod -R g=u ${FIX_PERM_LIST} && \ + chown --quiet zabbix:0 ${ZABBIX_CONF_DIR}/ && \ chmod g=u ${ZABBIX_CONF_DIR} && \ /usr/sbin/zabbix_agent2 -V @@ -99,7 +95,7 @@ EXPOSE 10050/tcp 31999/tcp WORKDIR ${ZABBIX_USER_HOME_DIR} -COPY ["docker-entrypoint.sh", "/usr/bin/"] +COPY docker-entrypoint.sh /usr/bin/ ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"] diff --git a/Dockerfiles/build-base/ol/Dockerfile b/Dockerfiles/build-base/ol/Dockerfile index 5e96a7e5a..e972435d3 100644 --- a/Dockerfiles/build-base/ol/Dockerfile +++ b/Dockerfiles/build-base/ol/Dockerfile @@ -1,4 +1,4 @@ -# syntax=docker/dockerfile:1 +# syntax=docker/dockerfile:1.6 ARG OS_BASE_IMAGE=container-registry.oracle.com/os/oraclelinux:10-slim FROM ${OS_BASE_IMAGE} @@ -7,11 +7,11 @@ ARG ZBX_VERSION=${MAJOR_VERSION}.8 ENV TERM=xterm \ ZBX_VERSION=${ZBX_VERSION} \ - PATH=/usr/local/go/bin:$PATH \ + GOPATH=/root/go \ GOCACHE=/root/.cache/go-build \ GOMODCACHE=/root/go/pkg/mod \ GOTELEMETRY=off \ - GOFLAGS="-buildvcs=false" + GOFLAGS=-buildvcs=false LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix build base image contains all required packages to build Zabbix images" \ @@ -48,8 +48,7 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ OpenIPMI-devel \ openldap-devel \ sqlite-devel \ - postgresql-private-devel \ - postgresql-server-devel \ + libpq-devel \ java-21-openjdk-devel \ git \ gettext \ diff --git a/Dockerfiles/build-mysql/ol/Dockerfile b/Dockerfiles/build-mysql/ol/Dockerfile index de05d6ce3..e40e0da69 100644 --- a/Dockerfiles/build-mysql/ol/Dockerfile +++ b/Dockerfiles/build-mysql/ol/Dockerfile @@ -1,4 +1,4 @@ -# syntax=docker/dockerfile:1 +# syntax=docker/dockerfile:1.6 ARG MAJOR_VERSION=7.4 ARG ZBX_VERSION=${MAJOR_VERSION}.8 ARG BUILD_BASE_IMAGE=zabbix-build-base:ol-${ZBX_VERSION} @@ -12,6 +12,7 @@ ARG GIT_BRANCH ARG ZBX_PLUGINS_VERSION=${GIT_BRANCH:-$ZBX_VERSION} ARG CFLAGS +ARG LDFLAGS LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix build base for MySQL based images" \ @@ -25,156 +26,177 @@ LABEL org.opencontainers.image.authors="Alexey Pustovalov /dev/null 2>&1; then \ + zabbix_revision="$(git rev-parse --short HEAD)"; \ + else \ + zabbix_revision="unknown"; \ + fi && \ sed -i "s/{ZABBIX_REVISION}/$zabbix_revision/g" include/version.h && \ sed -i "s/{ZABBIX_REVISION}/$zabbix_revision/g" src/go/pkg/version/version.go && \ - sed -i "s/{ZABBIX_REVISION}/$zabbix_revision/g" src/zabbix_java/src/com/zabbix/gateway/GeneralInformation.java && \ + sed -i "s/{ZABBIX_REVISION}/$zabbix_revision/g" src/zabbix_java/src/com/zabbix/gateway/GeneralInformation.java + +RUN --mount=type=cache,target=/root/.cache/go-build \ + --mount=type=cache,target=/root/go/pkg/mod \ + --mount=from=config_templates,target=/tmp/conf,ro \ + set -eux && \ + cd "${ZBX_SOURCES_DIR}" && \ ./bootstrap.sh && \ ./configure \ - --datadir=/usr/lib \ - --libdir=/usr/lib/zabbix \ - --prefix=/usr \ - --sysconfdir=/etc/zabbix \ - --enable-ipv6 \ - --enable-agent \ - --enable-agent2 \ - --enable-java \ - --enable-proxy \ - --enable-server \ - --enable-webservice \ - --with-ares \ - --with-ldap \ - --with-libcurl \ -# --with-libmodbus \ - --with-libpcre2 \ - --with-libxml2 \ - --with-${DB_TYPE} \ - --with-net-snmp \ - --with-openipmi \ - --with-openssl \ - --with-ssh \ - --with-unixodbc \ - --silent && \ - make -j"$(nproc)" -s dbschema && \ - make -j"$(nproc)" -s && \ - make -j"$(nproc)" -s gettext && \ - cat database/${DB_TYPE}/schema.sql > database/${DB_TYPE}/create.sql && \ - gzip -c database/${DB_TYPE}/create.sql > ${ZBX_OUTPUT_DIR}/proxy/database/${DB_TYPE}/create.sql.gz && \ - cat database/${DB_TYPE}/images.sql >> database/${DB_TYPE}/create.sql && \ - cat database/${DB_TYPE}/data.sql >> database/${DB_TYPE}/create.sql && \ - gzip -c database/${DB_TYPE}/create.sql > ${ZBX_OUTPUT_DIR}/server/database/${DB_TYPE}/create.sql.gz && \ - rm -rf database/${DB_TYPE}/create.sql && \ - curl --tlsv1.2 -sSf -L "https://raw.githubusercontent.com/notofonts/noto-cjk/main/Sans/OTF/Japanese/NotoSansCJKjp-Regular.otf" -o ${ZBX_SOURCES_DIR}/ui/assets/fonts/NotoSansCJKjp-Regular.otf && \ - curl --tlsv1.2 -sSf -L "https://raw.githubusercontent.com/notofonts/noto-cjk/main/Sans/LICENSE" -o ${ZBX_SOURCES_DIR}/ui/assets/fonts/OFL.txt && \ - sed -i -r "s/(define\(.*_FONT_NAME.*)DejaVuSans/\1NotoSansCJKjp-Regular/" ${ZBX_SOURCES_DIR}/ui/include/defines.inc.php && \ - sed -i -r "s/\.ttf/\.otf/" ${ZBX_SOURCES_DIR}/ui/include/graphs.inc.php && \ - rm -f ${ZBX_SOURCES_DIR}/ui/assets/fonts/DejaVuSans.ttf && \ - chmod o+r ${ZBX_SOURCES_DIR}/ui/assets/fonts/* && \ - strip ${ZBX_SOURCES_DIR}/src/zabbix_agent/zabbix_agentd && \ - strip ${ZBX_SOURCES_DIR}/src/zabbix_server/zabbix_server && \ - strip ${ZBX_SOURCES_DIR}/src/zabbix_proxy/zabbix_proxy && \ - strip ${ZBX_SOURCES_DIR}/src/go/bin/zabbix_agent2 && \ - strip ${ZBX_SOURCES_DIR}/src/zabbix_get/zabbix_get && \ - strip ${ZBX_SOURCES_DIR}/src/zabbix_sender/zabbix_sender && \ - strip ${ZBX_SOURCES_DIR}/src/go/bin/zabbix_web_service && \ - cp ${ZBX_SOURCES_DIR}/src/zabbix_agent/zabbix_agentd ${ZBX_OUTPUT_DIR}/agent/sbin/ && \ - cp ${ZBX_SOURCES_DIR}/conf/zabbix_agentd.conf ${ZBX_OUTPUT_DIR}/agent/conf/zabbix_agentd.conf_template && \ - cp -R ${ZBX_SOURCES_DIR}/conf/zabbix_agentd/ ${ZBX_OUTPUT_DIR}/agent/conf/ && \ - cp /tmp/conf/agent/* ${ZBX_OUTPUT_DIR}/agent/conf/ && \ - cp ${ZBX_SOURCES_DIR}/src/go/bin/zabbix_agent2 ${ZBX_OUTPUT_DIR}/agent2/sbin/ && \ - cp ${ZBX_SOURCES_DIR}/src/go/conf/zabbix_agent2.conf ${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.conf_template && \ - cp /tmp/conf/agent2/* ${ZBX_OUTPUT_DIR}/agent2/conf/ && \ - cp -R ${ZBX_SOURCES_DIR}/src/go/conf/zabbix_agent2.d/ ${ZBX_OUTPUT_DIR}/agent2/conf/ && \ - cp ${ZBX_SOURCES_DIR}/src/zabbix_server/zabbix_server ${ZBX_OUTPUT_DIR}/server/sbin/ && \ - cp ${ZBX_SOURCES_DIR}/conf/zabbix_server.conf ${ZBX_OUTPUT_DIR}/server/conf/zabbix_server.conf_template && \ - cp /tmp/conf/server/* ${ZBX_OUTPUT_DIR}/server/conf/ && \ - cp ${ZBX_SOURCES_DIR}/src/zabbix_proxy/zabbix_proxy ${ZBX_OUTPUT_DIR}/proxy/sbin/ && \ - cp ${ZBX_SOURCES_DIR}/conf/zabbix_proxy.conf ${ZBX_OUTPUT_DIR}/proxy/conf/zabbix_proxy.conf_template && \ - cp /tmp/conf/proxy/* ${ZBX_OUTPUT_DIR}/proxy/conf/ && \ - cp -R ${ZBX_SOURCES_DIR}/src/zabbix_java/bin/ ${ZBX_OUTPUT_DIR}/java_gateway/sbin/ && \ - cp -R ${ZBX_SOURCES_DIR}/src/zabbix_java/lib/ ${ZBX_OUTPUT_DIR}/java_gateway/sbin/ && \ - cp ${ZBX_SOURCES_DIR}/src/go/bin/zabbix_web_service ${ZBX_OUTPUT_DIR}/web_service/sbin/ && \ - cp ${ZBX_SOURCES_DIR}/src/go/conf/zabbix_web_service.conf ${ZBX_OUTPUT_DIR}/web_service/conf/zabbix_web_service.conf_template && \ - cp /tmp/conf/web_service/* ${ZBX_OUTPUT_DIR}/web_service/conf/ && \ - cp ${ZBX_SOURCES_DIR}/src/zabbix_get/zabbix_get ${ZBX_OUTPUT_DIR}/general/bin/ && \ - cp ${ZBX_SOURCES_DIR}/src/zabbix_sender/zabbix_sender ${ZBX_OUTPUT_DIR}/general/bin/ && \ - make -s distclean && \ - cd /tmp/ && \ - mkdir -p ${ZBX_OUTPUT_DIR}/agent2/sbin/zabbix-agent2-plugin/ && \ - mkdir -p ${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.d/plugins.d/ && \ - git -c advice.detachedHead=false clone ${MONGODB_PLUGIN_SOURCES} --branch ${MONGODB_PLUGIN_VERSION} --depth 1 --single-branch /tmp/mongodb-plugin-${MONGODB_PLUGIN_VERSION} && \ - cd /tmp/mongodb-plugin-${MONGODB_PLUGIN_VERSION} && \ - make && \ - strip /tmp/mongodb-plugin-${MONGODB_PLUGIN_VERSION}/zabbix-agent2-plugin-mongodb && \ - cp /tmp/mongodb-plugin-${MONGODB_PLUGIN_VERSION}/zabbix-agent2-plugin-mongodb ${ZBX_OUTPUT_DIR}/agent2/sbin/zabbix-agent2-plugin/mongodb && \ - cp /tmp/mongodb-plugin-${MONGODB_PLUGIN_VERSION}/mongodb.conf ${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.d/plugins.d/ && \ - cd /tmp/ && \ - git -c advice.detachedHead=false clone ${POSTGRESQL_PLUGIN_SOURCES} --branch ${POSTGRESQL_PLUGIN_VERSION} --depth 1 --single-branch /tmp/postgresql-plugin-${POSTGRESQL_PLUGIN_VERSION} && \ - cd /tmp/postgresql-plugin-${POSTGRESQL_PLUGIN_VERSION} && \ - make && \ - strip /tmp/postgresql-plugin-${POSTGRESQL_PLUGIN_VERSION}/zabbix-agent2-plugin-postgresql && \ - cp /tmp/postgresql-plugin-${POSTGRESQL_PLUGIN_VERSION}/zabbix-agent2-plugin-postgresql ${ZBX_OUTPUT_DIR}/agent2/sbin/zabbix-agent2-plugin/postgresql && \ - cp /tmp/postgresql-plugin-${POSTGRESQL_PLUGIN_VERSION}/postgresql.conf ${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.d/plugins.d/ && \ - cd /tmp/ && \ - git -c advice.detachedHead=false clone ${MSSQL_PLUGIN_SOURCES} --branch ${MSSQL_PLUGIN_VERSION} --depth 1 --single-branch /tmp/mssql-plugin-${MSSQL_PLUGIN_VERSION} && \ - cd /tmp/mssql-plugin-${MSSQL_PLUGIN_VERSION} && \ - make && \ - strip /tmp/mssql-plugin-${MSSQL_PLUGIN_VERSION}/zabbix-agent2-plugin-mssql && \ - cp /tmp/mssql-plugin-${MSSQL_PLUGIN_VERSION}/zabbix-agent2-plugin-mssql ${ZBX_OUTPUT_DIR}/agent2/sbin/zabbix-agent2-plugin/mssql && \ - cp /tmp/mssql-plugin-${MSSQL_PLUGIN_VERSION}/mssql.conf ${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.d/plugins.d/ && \ - cd /tmp/ && \ - git -c advice.detachedHead=false clone ${EMBER_PLUS_PLUGIN_SOURCES} --branch ${EMBER_PLUS_PLUGIN_VERSION} --depth 1 --single-branch /tmp/ember-plugin-${EMBER_PLUS_PLUGIN_VERSION} && \ - cd /tmp/ember-plugin-${EMBER_PLUS_PLUGIN_VERSION} && \ - make && \ - strip /tmp/ember-plugin-${EMBER_PLUS_PLUGIN_VERSION}/zabbix-agent2-plugin-ember-plus && \ - cp /tmp/ember-plugin-${EMBER_PLUS_PLUGIN_VERSION}/zabbix-agent2-plugin-ember-plus ${ZBX_OUTPUT_DIR}/agent2/sbin/zabbix-agent2-plugin/ember-plus && \ - cp /tmp/ember-plugin-${EMBER_PLUS_PLUGIN_VERSION}/ember.conf ${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.d/plugins.d/ && \ - cd /tmp/ && \ - git -c advice.detachedHead=false clone ${NVIDIA_GPU_PLUGIN_SOURCES} --branch ${NVIDIA_GPU_PLUGIN_VERSION} --depth 1 --single-branch /tmp/nvidia-gpu-plugin-${NVIDIA_GPU_PLUGIN_VERSION} && \ - cd /tmp/nvidia-gpu-plugin-${NVIDIA_GPU_PLUGIN_VERSION} && \ - make && \ - strip /tmp/nvidia-gpu-plugin-${NVIDIA_GPU_PLUGIN_VERSION}/zabbix-agent2-plugin-nvidia-gpu && \ - cp /tmp/nvidia-gpu-plugin-${NVIDIA_GPU_PLUGIN_VERSION}/zabbix-agent2-plugin-nvidia-gpu ${ZBX_OUTPUT_DIR}/agent2/sbin/zabbix-agent2-plugin/nvidia-gpu && \ - cp /tmp/nvidia-gpu-plugin-${NVIDIA_GPU_PLUGIN_VERSION}/nvidia.conf ${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.d/plugins.d/ + --datadir=/usr/lib \ + --libdir=/usr/lib/zabbix \ + --prefix=/usr \ + --sysconfdir=/etc/zabbix \ + --enable-ipv6 \ + --enable-agent \ + --enable-agent2 \ + --enable-java \ + --enable-proxy \ + --enable-server \ + --enable-webservice \ + --with-ares \ + --with-ldap \ + --with-libcurl \ +# --with-libmodbus \ + --with-libpcre2 \ + --with-libxml2 \ + --with-${DB_TYPE} \ + --with-net-snmp \ + --with-openipmi \ + --with-openssl \ + --with-ssh \ + --with-unixodbc \ + --silent && \ + jobs="$(nproc)" && \ + make -j"${jobs}" -s dbschema && \ + make -j"${jobs}" -s && \ + make -j"${jobs}" -s gettext && \ + cat "database/${DB_TYPE}/schema.sql" > "database/${DB_TYPE}/create.sql" && \ + gzip -c "database/${DB_TYPE}/create.sql" > "${ZBX_OUTPUT_DIR}/proxy/database/${DB_TYPE}/create.sql.gz" && \ + cat "database/${DB_TYPE}/images.sql" >> "database/${DB_TYPE}/create.sql" && \ + cat "database/${DB_TYPE}/data.sql" >> "database/${DB_TYPE}/create.sql" && \ + gzip -c "database/${DB_TYPE}/create.sql" > "${ZBX_OUTPUT_DIR}/server/database/${DB_TYPE}/create.sql.gz" && \ + rm -f "database/${DB_TYPE}/create.sql" && \ + strip src/zabbix_agent/zabbix_agentd && \ + strip src/zabbix_server/zabbix_server && \ + strip src/zabbix_proxy/zabbix_proxy && \ + strip src/zabbix_get/zabbix_get && \ + strip src/zabbix_sender/zabbix_sender && \ + strip src/go/bin/zabbix_agent2 || true && \ + strip src/go/bin/zabbix_web_service || true && \ + cp src/zabbix_agent/zabbix_agentd "${ZBX_OUTPUT_DIR}/agent/sbin/" && \ + cp conf/zabbix_agentd.conf "${ZBX_OUTPUT_DIR}/agent/conf/zabbix_agentd.conf.dist" && \ + cp -a conf/zabbix_agentd/. "${ZBX_OUTPUT_DIR}/agent/conf/" && \ + cp -a /tmp/conf/agent/. "${ZBX_OUTPUT_DIR}/agent/conf/" && \ + cp src/go/bin/zabbix_agent2 "${ZBX_OUTPUT_DIR}/agent2/sbin/" && \ + cp src/go/conf/zabbix_agent2.conf "${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.conf.dist" && \ + cp -a src/go/conf/zabbix_agent2.d/. "${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.d/" && \ + cp -a /tmp/conf/agent2/. "${ZBX_OUTPUT_DIR}/agent2/conf/" && \ + cp src/zabbix_server/zabbix_server "${ZBX_OUTPUT_DIR}/server/sbin/" && \ + cp conf/zabbix_server.conf "${ZBX_OUTPUT_DIR}/server/conf/zabbix_server.conf.dist" && \ + cp -a /tmp/conf/server/. "${ZBX_OUTPUT_DIR}/server/conf/" && \ + cp src/zabbix_proxy/zabbix_proxy "${ZBX_OUTPUT_DIR}/proxy/sbin/" && \ + cp conf/zabbix_proxy.conf "${ZBX_OUTPUT_DIR}/proxy/conf/zabbix_proxy.conf.dist" && \ + cp -a /tmp/conf/proxy/. "${ZBX_OUTPUT_DIR}/proxy/conf/" && \ + cp -a src/zabbix_java/bin/. "${ZBX_OUTPUT_DIR}/java_gateway/sbin/bin/" && \ + cp -a src/zabbix_java/lib/. "${ZBX_OUTPUT_DIR}/java_gateway/sbin/lib/" && \ + cp src/go/bin/zabbix_web_service "${ZBX_OUTPUT_DIR}/web_service/sbin/" && \ + cp src/go/conf/zabbix_web_service.conf "${ZBX_OUTPUT_DIR}/web_service/conf/zabbix_web_service.conf.dist" && \ + cp -a /tmp/conf/web_service/. "${ZBX_OUTPUT_DIR}/web_service/conf/" && \ + cp src/zabbix_get/zabbix_get "${ZBX_OUTPUT_DIR}/general/bin/" && \ + cp src/zabbix_sender/zabbix_sender "${ZBX_OUTPUT_DIR}/general/bin/" && \ + make -s distclean + +RUN set -eux && \ + cd "${ZBX_SOURCES_DIR}" && \ + curl --retry 5 --retry-all-errors --retry-delay 2 --tlsv1.2 -sSf -L \ + "https://raw.githubusercontent.com/notofonts/noto-cjk/main/Sans/OTF/Japanese/NotoSansCJKjp-Regular.otf" \ + -o ui/assets/fonts/NotoSansCJKjp-Regular.otf && \ + curl --retry 5 --retry-all-errors --retry-delay 2 --tlsv1.2 -sSf -L \ + "https://raw.githubusercontent.com/notofonts/noto-cjk/main/Sans/LICENSE" \ + -o ui/assets/fonts/OFL.txt && \ + sed -i -r 's/(define\(.*_FONT_NAME.*)DejaVuSans/\1NotoSansCJKjp-Regular/' ui/include/defines.inc.php && \ + sed -i -r 's/\.ttf/\.otf/' ui/include/graphs.inc.php && \ + rm -f ui/assets/fonts/DejaVuSans.ttf && \ + chmod o+r ui/assets/fonts/* + +RUN --mount=type=cache,target=/root/.cache/go-build \ + --mount=type=cache,target=/root/go/pkg/mod \ + set -eux && \ + mkdir -p "${ZBX_OUTPUT_DIR}/agent2/sbin/zabbix-agent2-plugin" && \ + mkdir -p "${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.d/plugins.d" && \ + build_plugin() { \ + name="$1"; \ + repo="$2"; \ + version="$3"; \ + binary="$4"; \ + conf="$5"; \ + outname="$6"; \ + workdir="/tmp/${name}-plugin-${version}"; \ + rm -rf "$workdir"; \ + git -c advice.detachedHead=false clone "$repo" \ + --branch "$version" \ + --depth 1 \ + --single-branch \ + "$workdir"; \ + cd "$workdir"; \ + make; \ + strip "$binary" || true; \ + cp "$binary" "${ZBX_OUTPUT_DIR}/agent2/sbin/zabbix-agent2-plugin/${outname}"; \ + cp "$conf" "${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.d/plugins.d/"; \ + make clean; \ + }; \ + build_plugin mongodb "${MONGODB_PLUGIN_SOURCES}" "${MONGODB_PLUGIN_VERSION}" \ + zabbix-agent2-plugin-mongodb mongodb.conf mongodb && \ + build_plugin postgresql "${POSTGRESQL_PLUGIN_SOURCES}" "${POSTGRESQL_PLUGIN_VERSION}" \ + zabbix-agent2-plugin-postgresql postgresql.conf postgresql && \ + build_plugin mssql "${MSSQL_PLUGIN_SOURCES}" "${MSSQL_PLUGIN_VERSION}" \ + zabbix-agent2-plugin-mssql mssql.conf mssql && \ + build_plugin ember "${EMBER_PLUS_PLUGIN_SOURCES}" "${EMBER_PLUS_PLUGIN_VERSION}" \ + zabbix-agent2-plugin-ember-plus ember.conf ember-plus && \ + build_plugin nvidia-gpu "${NVIDIA_GPU_PLUGIN_SOURCES}" "${NVIDIA_GPU_PLUGIN_VERSION}" \ + zabbix-agent2-plugin-nvidia-gpu nvidia.conf nvidia-gpu diff --git a/Dockerfiles/build-pgsql/ol/Dockerfile b/Dockerfiles/build-pgsql/ol/Dockerfile index 02ad5ceb0..8922b52d0 100644 --- a/Dockerfiles/build-pgsql/ol/Dockerfile +++ b/Dockerfiles/build-pgsql/ol/Dockerfile @@ -1,4 +1,4 @@ -# syntax=docker/dockerfile:1 +# syntax=docker/dockerfile:1.6 ARG MAJOR_VERSION=7.4 ARG ZBX_VERSION=${MAJOR_VERSION}.8 ARG BUILD_BASE_IMAGE=zabbix-build-base:ol-${ZBX_VERSION} @@ -12,6 +12,7 @@ ARG GIT_BRANCH ARG ZBX_PLUGINS_VERSION=${GIT_BRANCH:-$ZBX_VERSION} ARG CFLAGS +ARG LDFLAGS LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix build base for PostgreSQL based images" \ @@ -25,161 +26,177 @@ LABEL org.opencontainers.image.authors="Alexey Pustovalov /dev/null 2>&1; then \ + zabbix_revision="$(git rev-parse --short HEAD)"; \ + else \ + zabbix_revision="unknown"; \ + fi && \ sed -i "s/{ZABBIX_REVISION}/$zabbix_revision/g" include/version.h && \ sed -i "s/{ZABBIX_REVISION}/$zabbix_revision/g" src/go/pkg/version/version.go && \ - sed -i "s/{ZABBIX_REVISION}/$zabbix_revision/g" src/zabbix_java/src/com/zabbix/gateway/GeneralInformation.java && \ + sed -i "s/{ZABBIX_REVISION}/$zabbix_revision/g" src/zabbix_java/src/com/zabbix/gateway/GeneralInformation.java + +RUN --mount=type=cache,target=/root/.cache/go-build \ + --mount=type=cache,target=/root/go/pkg/mod \ + --mount=from=config_templates,target=/tmp/conf,ro \ + set -eux && \ + cd "${ZBX_SOURCES_DIR}" && \ ./bootstrap.sh && \ ./configure \ - --datadir=/usr/lib \ - --libdir=/usr/lib/zabbix \ - --prefix=/usr \ - --sysconfdir=/etc/zabbix \ - --enable-agent \ - --enable-agent2 \ - --enable-ipv6 \ - --enable-java \ - --enable-proxy \ - --enable-server \ - --enable-webservice \ - --with-ares \ - --with-ldap \ - --with-libcurl \ -# --with-libmodbus \ - --with-libpcre2 \ - --with-libxml2 \ - --with-${DB_TYPE} \ - --with-net-snmp \ - --with-openipmi \ - --with-openssl \ - --with-ssh \ - --with-unixodbc \ - --silent && \ - make -j"$(nproc)" -s dbschema && \ - make -j"$(nproc)" -s && \ - make -j"$(nproc)" -s gettext && \ - cat database/${DB_TYPE}/schema.sql > database/${DB_TYPE}/create.sql && \ - gzip -c database/${DB_TYPE}/create.sql > ${ZBX_OUTPUT_DIR}/proxy/database/${DB_TYPE}/create.sql.gz && \ - cat database/${DB_TYPE}/images.sql >> database/${DB_TYPE}/create.sql && \ - cat database/${DB_TYPE}/data.sql >> database/${DB_TYPE}/create.sql && \ - gzip -c database/${DB_TYPE}/create.sql > ${ZBX_OUTPUT_DIR}/server/database/${DB_TYPE}/create.sql.gz && \ - rm -rf database/${DB_TYPE}/create.sql && \ - cp -R ${ZBX_SOURCES_DIR}/database/postgresql/timescaledb/schema.sql ${ZBX_OUTPUT_DIR}/server/database/${DB_TYPE}/timescaledb.sql && \ - cp -R ${ZBX_SOURCES_DIR}/database/postgresql/timescaledb/option-patches/with-compression/*.sql ${ZBX_OUTPUT_DIR}/server/database/${DB_TYPE}/option-patches/with-compression/ && \ - cp -R ${ZBX_SOURCES_DIR}/database/postgresql/timescaledb/option-patches/without-compression/*.sql ${ZBX_OUTPUT_DIR}/server/database/${DB_TYPE}/option-patches/without-compression/ && \ - curl --tlsv1.2 -sSf -L "https://raw.githubusercontent.com/notofonts/noto-cjk/main/Sans/OTF/Japanese/NotoSansCJKjp-Regular.otf" -o ${ZBX_SOURCES_DIR}/ui/assets/fonts/NotoSansCJKjp-Regular.otf && \ - curl --tlsv1.2 -sSf -L "https://raw.githubusercontent.com/notofonts/noto-cjk/main/Sans/LICENSE" -o ${ZBX_SOURCES_DIR}/ui/assets/fonts/OFL.txt && \ - sed -i -r "s/(define\(.*_FONT_NAME.*)DejaVuSans/\1NotoSansCJKjp-Regular/" ${ZBX_SOURCES_DIR}/ui/include/defines.inc.php && \ - sed -i -r "s/\.ttf/\.otf/" ${ZBX_SOURCES_DIR}/ui/include/graphs.inc.php && \ - rm -f ${ZBX_SOURCES_DIR}/ui/assets/fonts/DejaVuSans.ttf && \ - chmod o+r ${ZBX_SOURCES_DIR}/ui/assets/fonts/* && \ - strip ${ZBX_SOURCES_DIR}/src/zabbix_agent/zabbix_agentd && \ - strip ${ZBX_SOURCES_DIR}/src/zabbix_server/zabbix_server && \ - strip ${ZBX_SOURCES_DIR}/src/zabbix_proxy/zabbix_proxy && \ - strip ${ZBX_SOURCES_DIR}/src/go/bin/zabbix_agent2 && \ - strip ${ZBX_SOURCES_DIR}/src/zabbix_get/zabbix_get && \ - strip ${ZBX_SOURCES_DIR}/src/zabbix_sender/zabbix_sender && \ - strip ${ZBX_SOURCES_DIR}/src/go/bin/zabbix_web_service && \ - cp ${ZBX_SOURCES_DIR}/src/zabbix_agent/zabbix_agentd ${ZBX_OUTPUT_DIR}/agent/sbin/ && \ - cp ${ZBX_SOURCES_DIR}/conf/zabbix_agentd.conf ${ZBX_OUTPUT_DIR}/agent/conf/zabbix_agentd.conf_template && \ - cp /tmp/conf/agent/* ${ZBX_OUTPUT_DIR}/agent/conf/ && \ - cp -R ${ZBX_SOURCES_DIR}/conf/zabbix_agentd/ ${ZBX_OUTPUT_DIR}/agent/conf/ && \ - cp ${ZBX_SOURCES_DIR}/src/go/bin/zabbix_agent2 ${ZBX_OUTPUT_DIR}/agent2/sbin/ && \ - cp ${ZBX_SOURCES_DIR}/src/go/conf/zabbix_agent2.conf ${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.conf_template && \ - cp /tmp/conf/agent2/* ${ZBX_OUTPUT_DIR}/agent2/conf/ && \ - cp -R ${ZBX_SOURCES_DIR}/src/go/conf/zabbix_agent2.d/ ${ZBX_OUTPUT_DIR}/agent2/conf/ && \ - cp ${ZBX_SOURCES_DIR}/src/zabbix_server/zabbix_server ${ZBX_OUTPUT_DIR}/server/sbin/ && \ - cp ${ZBX_SOURCES_DIR}/conf/zabbix_server.conf ${ZBX_OUTPUT_DIR}/server/conf/zabbix_server.conf_template && \ - cp /tmp/conf/server/* ${ZBX_OUTPUT_DIR}/server/conf/ && \ - cp ${ZBX_SOURCES_DIR}/src/zabbix_proxy/zabbix_proxy ${ZBX_OUTPUT_DIR}/proxy/sbin/ && \ - cp ${ZBX_SOURCES_DIR}/conf/zabbix_proxy.conf ${ZBX_OUTPUT_DIR}/proxy/conf/zabbix_proxy.conf_template && \ - cp /tmp/conf/proxy/* ${ZBX_OUTPUT_DIR}/proxy/conf/ && \ - cp -R ${ZBX_SOURCES_DIR}/src/zabbix_java/bin/ ${ZBX_OUTPUT_DIR}/java_gateway/sbin/ && \ - cp -R ${ZBX_SOURCES_DIR}/src/zabbix_java/lib/ ${ZBX_OUTPUT_DIR}/java_gateway/sbin/ && \ - cp ${ZBX_SOURCES_DIR}/src/go/bin/zabbix_web_service ${ZBX_OUTPUT_DIR}/web_service/sbin/ && \ - cp ${ZBX_SOURCES_DIR}/src/go/conf/zabbix_web_service.conf ${ZBX_OUTPUT_DIR}/web_service/conf/zabbix_web_service.conf_template && \ - cp /tmp/conf/web_service/* ${ZBX_OUTPUT_DIR}/web_service/conf/ && \ - cp ${ZBX_SOURCES_DIR}/src/zabbix_get/zabbix_get ${ZBX_OUTPUT_DIR}/general/bin/ && \ - cp ${ZBX_SOURCES_DIR}/src/zabbix_sender/zabbix_sender ${ZBX_OUTPUT_DIR}/general/bin/ && \ - make -s distclean && \ - cd /tmp/ && \ - mkdir -p ${ZBX_OUTPUT_DIR}/agent2/sbin/zabbix-agent2-plugin/ && \ - mkdir -p ${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.d/plugins.d/ && \ - git -c advice.detachedHead=false clone ${MONGODB_PLUGIN_SOURCES} --branch ${MONGODB_PLUGIN_VERSION} --depth 1 --single-branch /tmp/mongodb-plugin-${MONGODB_PLUGIN_VERSION} && \ - cd /tmp/mongodb-plugin-${MONGODB_PLUGIN_VERSION} && \ - make && \ - strip /tmp/mongodb-plugin-${MONGODB_PLUGIN_VERSION}/zabbix-agent2-plugin-mongodb && \ - cp /tmp/mongodb-plugin-${MONGODB_PLUGIN_VERSION}/zabbix-agent2-plugin-mongodb ${ZBX_OUTPUT_DIR}/agent2/sbin/zabbix-agent2-plugin/mongodb && \ - cp /tmp/mongodb-plugin-${MONGODB_PLUGIN_VERSION}/mongodb.conf ${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.d/plugins.d/ && \ - cd /tmp/ && \ - git -c advice.detachedHead=false clone ${POSTGRESQL_PLUGIN_SOURCES} --branch ${POSTGRESQL_PLUGIN_VERSION} --depth 1 --single-branch /tmp/postgresql-plugin-${POSTGRESQL_PLUGIN_VERSION} && \ - cd /tmp/postgresql-plugin-${POSTGRESQL_PLUGIN_VERSION} && \ - make && \ - strip /tmp/postgresql-plugin-${POSTGRESQL_PLUGIN_VERSION}/zabbix-agent2-plugin-postgresql && \ - cp /tmp/postgresql-plugin-${POSTGRESQL_PLUGIN_VERSION}/zabbix-agent2-plugin-postgresql ${ZBX_OUTPUT_DIR}/agent2/sbin/zabbix-agent2-plugin/postgresql && \ - cp /tmp/postgresql-plugin-${POSTGRESQL_PLUGIN_VERSION}/postgresql.conf ${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.d/plugins.d/ && \ - cd /tmp/ && \ - git -c advice.detachedHead=false clone ${MSSQL_PLUGIN_SOURCES} --branch ${MSSQL_PLUGIN_VERSION} --depth 1 --single-branch /tmp/mssql-plugin-${MSSQL_PLUGIN_VERSION} && \ - cd /tmp/mssql-plugin-${MSSQL_PLUGIN_VERSION} && \ - make && \ - strip /tmp/mssql-plugin-${MSSQL_PLUGIN_VERSION}/zabbix-agent2-plugin-mssql && \ - cp /tmp/mssql-plugin-${MSSQL_PLUGIN_VERSION}/zabbix-agent2-plugin-mssql ${ZBX_OUTPUT_DIR}/agent2/sbin/zabbix-agent2-plugin/mssql && \ - cp /tmp/mssql-plugin-${MSSQL_PLUGIN_VERSION}/mssql.conf ${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.d/plugins.d/ && \ - cd /tmp/ && \ - git -c advice.detachedHead=false clone ${EMBER_PLUS_PLUGIN_SOURCES} --branch ${EMBER_PLUS_PLUGIN_VERSION} --depth 1 --single-branch /tmp/ember-plugin-${EMBER_PLUS_PLUGIN_VERSION} && \ - cd /tmp/ember-plugin-${EMBER_PLUS_PLUGIN_VERSION} && \ - make && \ - strip /tmp/ember-plugin-${EMBER_PLUS_PLUGIN_VERSION}/zabbix-agent2-plugin-ember-plus && \ - cp /tmp/ember-plugin-${EMBER_PLUS_PLUGIN_VERSION}/zabbix-agent2-plugin-ember-plus ${ZBX_OUTPUT_DIR}/agent2/sbin/zabbix-agent2-plugin/ember-plus && \ - cp /tmp/ember-plugin-${EMBER_PLUS_PLUGIN_VERSION}/ember.conf ${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.d/plugins.d/ && \ - cd /tmp/ && \ - git -c advice.detachedHead=false clone ${NVIDIA_GPU_PLUGIN_SOURCES} --branch ${NVIDIA_GPU_PLUGIN_VERSION} --depth 1 --single-branch /tmp/nvidia-gpu-plugin-${NVIDIA_GPU_PLUGIN_VERSION} && \ - cd /tmp/nvidia-gpu-plugin-${NVIDIA_GPU_PLUGIN_VERSION} && \ - make && \ - strip /tmp/nvidia-gpu-plugin-${NVIDIA_GPU_PLUGIN_VERSION}/zabbix-agent2-plugin-nvidia-gpu && \ - cp /tmp/nvidia-gpu-plugin-${NVIDIA_GPU_PLUGIN_VERSION}/zabbix-agent2-plugin-nvidia-gpu ${ZBX_OUTPUT_DIR}/agent2/sbin/zabbix-agent2-plugin/nvidia-gpu && \ - cp /tmp/nvidia-gpu-plugin-${NVIDIA_GPU_PLUGIN_VERSION}/nvidia.conf ${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.d/plugins.d/ + --datadir=/usr/lib \ + --libdir=/usr/lib/zabbix \ + --prefix=/usr \ + --sysconfdir=/etc/zabbix \ + --enable-ipv6 \ + --enable-agent \ + --enable-agent2 \ + --enable-java \ + --enable-proxy \ + --enable-server \ + --enable-webservice \ + --with-ares \ + --with-ldap \ + --with-libcurl \ +# --with-libmodbus \ + --with-libpcre2 \ + --with-libxml2 \ + --with-${DB_TYPE} \ + --with-net-snmp \ + --with-openipmi \ + --with-openssl \ + --with-ssh \ + --with-unixodbc \ + --silent && \ + jobs="$(nproc)" && \ + make -j"${jobs}" -s dbschema && \ + make -j"${jobs}" -s && \ + make -j"${jobs}" -s gettext && \ + cat "database/${DB_TYPE}/schema.sql" > "database/${DB_TYPE}/create.sql" && \ + gzip -c "database/${DB_TYPE}/create.sql" > "${ZBX_OUTPUT_DIR}/proxy/database/${DB_TYPE}/create.sql.gz" && \ + cat "database/${DB_TYPE}/images.sql" >> "database/${DB_TYPE}/create.sql" && \ + cat "database/${DB_TYPE}/data.sql" >> "database/${DB_TYPE}/create.sql" && \ + gzip -c "database/${DB_TYPE}/create.sql" > "${ZBX_OUTPUT_DIR}/server/database/${DB_TYPE}/create.sql.gz" && \ + rm -f "database/${DB_TYPE}/create.sql" && \ + strip src/zabbix_agent/zabbix_agentd && \ + strip src/zabbix_server/zabbix_server && \ + strip src/zabbix_proxy/zabbix_proxy && \ + strip src/zabbix_get/zabbix_get && \ + strip src/zabbix_sender/zabbix_sender && \ + strip src/go/bin/zabbix_agent2 || true && \ + strip src/go/bin/zabbix_web_service || true && \ + cp src/zabbix_agent/zabbix_agentd "${ZBX_OUTPUT_DIR}/agent/sbin/" && \ + cp conf/zabbix_agentd.conf "${ZBX_OUTPUT_DIR}/agent/conf/zabbix_agentd.conf.dist" && \ + cp -a conf/zabbix_agentd/. "${ZBX_OUTPUT_DIR}/agent/conf/" && \ + cp -a /tmp/conf/agent/. "${ZBX_OUTPUT_DIR}/agent/conf/" && \ + cp src/go/bin/zabbix_agent2 "${ZBX_OUTPUT_DIR}/agent2/sbin/" && \ + cp src/go/conf/zabbix_agent2.conf "${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.conf.dist" && \ + cp -a src/go/conf/zabbix_agent2.d/. "${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.d/" && \ + cp -a /tmp/conf/agent2/. "${ZBX_OUTPUT_DIR}/agent2/conf/" && \ + cp src/zabbix_server/zabbix_server "${ZBX_OUTPUT_DIR}/server/sbin/" && \ + cp conf/zabbix_server.conf "${ZBX_OUTPUT_DIR}/server/conf/zabbix_server.conf.dist" && \ + cp -a /tmp/conf/server/. "${ZBX_OUTPUT_DIR}/server/conf/" && \ + cp src/zabbix_proxy/zabbix_proxy "${ZBX_OUTPUT_DIR}/proxy/sbin/" && \ + cp conf/zabbix_proxy.conf "${ZBX_OUTPUT_DIR}/proxy/conf/zabbix_proxy.conf.dist" && \ + cp -a /tmp/conf/proxy/. "${ZBX_OUTPUT_DIR}/proxy/conf/" && \ + cp -a src/zabbix_java/bin/. "${ZBX_OUTPUT_DIR}/java_gateway/sbin/bin/" && \ + cp -a src/zabbix_java/lib/. "${ZBX_OUTPUT_DIR}/java_gateway/sbin/lib/" && \ + cp src/go/bin/zabbix_web_service "${ZBX_OUTPUT_DIR}/web_service/sbin/" && \ + cp src/go/conf/zabbix_web_service.conf "${ZBX_OUTPUT_DIR}/web_service/conf/zabbix_web_service.conf.dist" && \ + cp -a /tmp/conf/web_service/. "${ZBX_OUTPUT_DIR}/web_service/conf/" && \ + cp src/zabbix_get/zabbix_get "${ZBX_OUTPUT_DIR}/general/bin/" && \ + cp src/zabbix_sender/zabbix_sender "${ZBX_OUTPUT_DIR}/general/bin/" && \ + make -s distclean + +RUN set -eux && \ + cd "${ZBX_SOURCES_DIR}" && \ + curl --retry 5 --retry-all-errors --retry-delay 2 --tlsv1.2 -sSf -L \ + "https://raw.githubusercontent.com/notofonts/noto-cjk/main/Sans/OTF/Japanese/NotoSansCJKjp-Regular.otf" \ + -o ui/assets/fonts/NotoSansCJKjp-Regular.otf && \ + curl --retry 5 --retry-all-errors --retry-delay 2 --tlsv1.2 -sSf -L \ + "https://raw.githubusercontent.com/notofonts/noto-cjk/main/Sans/LICENSE" \ + -o ui/assets/fonts/OFL.txt && \ + sed -i -r 's/(define\(.*_FONT_NAME.*)DejaVuSans/\1NotoSansCJKjp-Regular/' ui/include/defines.inc.php && \ + sed -i -r 's/\.ttf/\.otf/' ui/include/graphs.inc.php && \ + rm -f ui/assets/fonts/DejaVuSans.ttf && \ + chmod o+r ui/assets/fonts/* + +RUN --mount=type=cache,target=/root/.cache/go-build \ + --mount=type=cache,target=/root/go/pkg/mod \ + set -eux && \ + mkdir -p "${ZBX_OUTPUT_DIR}/agent2/sbin/zabbix-agent2-plugin" && \ + mkdir -p "${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.d/plugins.d" && \ + build_plugin() { \ + name="$1"; \ + repo="$2"; \ + version="$3"; \ + binary="$4"; \ + conf="$5"; \ + outname="$6"; \ + workdir="/tmp/${name}-plugin-${version}"; \ + rm -rf "$workdir"; \ + git -c advice.detachedHead=false clone "$repo" \ + --branch "$version" \ + --depth 1 \ + --single-branch \ + "$workdir"; \ + cd "$workdir"; \ + make; \ + strip "$binary" || true; \ + cp "$binary" "${ZBX_OUTPUT_DIR}/agent2/sbin/zabbix-agent2-plugin/${outname}"; \ + cp "$conf" "${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.d/plugins.d/"; \ + make clean; \ + }; \ + build_plugin mongodb "${MONGODB_PLUGIN_SOURCES}" "${MONGODB_PLUGIN_VERSION}" \ + zabbix-agent2-plugin-mongodb mongodb.conf mongodb && \ + build_plugin postgresql "${POSTGRESQL_PLUGIN_SOURCES}" "${POSTGRESQL_PLUGIN_VERSION}" \ + zabbix-agent2-plugin-postgresql postgresql.conf postgresql && \ + build_plugin mssql "${MSSQL_PLUGIN_SOURCES}" "${MSSQL_PLUGIN_VERSION}" \ + zabbix-agent2-plugin-mssql mssql.conf mssql && \ + build_plugin ember "${EMBER_PLUS_PLUGIN_SOURCES}" "${EMBER_PLUS_PLUGIN_VERSION}" \ + zabbix-agent2-plugin-ember-plus ember.conf ember-plus && \ + build_plugin nvidia-gpu "${NVIDIA_GPU_PLUGIN_SOURCES}" "${NVIDIA_GPU_PLUGIN_VERSION}" \ + zabbix-agent2-plugin-nvidia-gpu nvidia.conf nvidia-gpu diff --git a/Dockerfiles/build-sqlite3/ol/Dockerfile b/Dockerfiles/build-sqlite3/ol/Dockerfile index bd573b401..24a377759 100644 --- a/Dockerfiles/build-sqlite3/ol/Dockerfile +++ b/Dockerfiles/build-sqlite3/ol/Dockerfile @@ -1,4 +1,4 @@ -# syntax=docker/dockerfile:1 +# syntax=docker/dockerfile:1.6 ARG MAJOR_VERSION=7.4 ARG ZBX_VERSION=${MAJOR_VERSION}.8 ARG BUILD_BASE_IMAGE=zabbix-build-base:ol-${ZBX_VERSION} @@ -12,6 +12,7 @@ ARG GIT_BRANCH ARG ZBX_PLUGINS_VERSION=${GIT_BRANCH:-$ZBX_VERSION} ARG CFLAGS +ARG LDFLAGS LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix build base for SQLite3 based images" \ @@ -25,133 +26,158 @@ LABEL org.opencontainers.image.authors="Alexey Pustovalov /dev/null 2>&1; then \ + zabbix_revision="$(git rev-parse --short HEAD)"; \ + else \ + zabbix_revision="unknown"; \ + fi && \ sed -i "s/{ZABBIX_REVISION}/$zabbix_revision/g" include/version.h && \ sed -i "s/{ZABBIX_REVISION}/$zabbix_revision/g" src/go/pkg/version/version.go && \ - sed -i "s/{ZABBIX_REVISION}/$zabbix_revision/g" src/zabbix_java/src/com/zabbix/gateway/GeneralInformation.java && \ + sed -i "s/{ZABBIX_REVISION}/$zabbix_revision/g" src/zabbix_java/src/com/zabbix/gateway/GeneralInformation.java + +RUN --mount=type=cache,target=/root/.cache/go-build \ + --mount=type=cache,target=/root/go/pkg/mod \ + --mount=from=config_templates,target=/tmp/conf,ro \ + set -eux && \ + cd "${ZBX_SOURCES_DIR}" && \ ./bootstrap.sh && \ ./configure \ - --datadir=/usr/lib \ - --libdir=/usr/lib/zabbix \ - --prefix=/usr \ - --sysconfdir=/etc/zabbix \ - --enable-ipv6 \ - --enable-agent \ - --enable-agent2 \ - --enable-java \ - --enable-proxy \ - --with-ares \ - --with-ldap \ - --with-libcurl \ -# --with-libmodbus \ - --with-libpcre2 \ - --with-libxml2 \ - --with-${DB_TYPE} \ - --with-net-snmp \ - --with-openipmi \ - --with-openssl \ - --with-ssh \ - --with-unixodbc \ - --silent && \ - make -j"$(nproc)" -s dbschema && \ - make -j"$(nproc)" -s && \ - curl --tlsv1.2 -sSf -L "https://raw.githubusercontent.com/notofonts/noto-cjk/main/Sans/OTF/Japanese/NotoSansCJKjp-Regular.otf" -o ${ZBX_SOURCES_DIR}/ui/assets/fonts/NotoSansCJKjp-Regular.otf && \ - curl --tlsv1.2 -sSf -L "https://raw.githubusercontent.com/notofonts/noto-cjk/main/Sans/LICENSE" -o ${ZBX_SOURCES_DIR}/ui/assets/fonts/OFL.txt && \ - sed -i -r "s/(define\(.*_FONT_NAME.*)DejaVuSans/\1NotoSansCJKjp-Regular/" ${ZBX_SOURCES_DIR}/ui/include/defines.inc.php && \ - sed -i -r "s/\.ttf/\.otf/" ${ZBX_SOURCES_DIR}/ui/include/graphs.inc.php && \ - rm -f ${ZBX_SOURCES_DIR}/ui/assets/fonts/DejaVuSans.ttf && \ - chmod o+r ${ZBX_SOURCES_DIR}/ui/assets/fonts/* && \ - strip ${ZBX_SOURCES_DIR}/src/zabbix_agent/zabbix_agentd && \ - strip ${ZBX_SOURCES_DIR}/src/zabbix_proxy/zabbix_proxy && \ - strip ${ZBX_SOURCES_DIR}/src/go/bin/zabbix_agent2 && \ - strip ${ZBX_SOURCES_DIR}/src/zabbix_get/zabbix_get && \ - strip ${ZBX_SOURCES_DIR}/src/zabbix_sender/zabbix_sender && \ - cp ${ZBX_SOURCES_DIR}/src/zabbix_agent/zabbix_agentd ${ZBX_OUTPUT_DIR}/agent/sbin/ && \ - cp ${ZBX_SOURCES_DIR}/conf/zabbix_agentd.conf ${ZBX_OUTPUT_DIR}/agent/conf/zabbix_agentd.conf_template && \ - cp /tmp/conf/agent/* ${ZBX_OUTPUT_DIR}/agent/conf/ && \ - cp -R ${ZBX_SOURCES_DIR}/conf/zabbix_agentd/ ${ZBX_OUTPUT_DIR}/agent/conf/ && \ - cp ${ZBX_SOURCES_DIR}/src/go/bin/zabbix_agent2 ${ZBX_OUTPUT_DIR}/agent2/sbin/ && \ - cp ${ZBX_SOURCES_DIR}/src/go/conf/zabbix_agent2.conf ${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.conf_template && \ - cp /tmp/conf/agent2/* ${ZBX_OUTPUT_DIR}/agent2/conf/ && \ - cp -R ${ZBX_SOURCES_DIR}/src/go/conf/zabbix_agent2.d/ ${ZBX_OUTPUT_DIR}/agent2/conf/ && \ - cp ${ZBX_SOURCES_DIR}/src/zabbix_proxy/zabbix_proxy ${ZBX_OUTPUT_DIR}/proxy/sbin/ && \ - cp ${ZBX_SOURCES_DIR}/conf/zabbix_proxy.conf ${ZBX_OUTPUT_DIR}/proxy/conf/zabbix_proxy.conf_template && \ - cp /tmp/conf/proxy/* ${ZBX_OUTPUT_DIR}/proxy/conf/ && \ - cp -R ${ZBX_SOURCES_DIR}/src/zabbix_java/bin/ ${ZBX_OUTPUT_DIR}/java_gateway/sbin/ && \ - cp -R ${ZBX_SOURCES_DIR}/src/zabbix_java/lib/ ${ZBX_OUTPUT_DIR}/java_gateway/sbin/ && \ - cp ${ZBX_SOURCES_DIR}/src/zabbix_get/zabbix_get ${ZBX_OUTPUT_DIR}/general/bin/ && \ - cp ${ZBX_SOURCES_DIR}/src/zabbix_sender/zabbix_sender ${ZBX_OUTPUT_DIR}/general/bin/ && \ - make -s distclean && \ - cd /tmp/ && \ - mkdir -p ${ZBX_OUTPUT_DIR}/agent2/sbin/zabbix-agent2-plugin/ && \ - mkdir -p ${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.d/plugins.d/ && \ - git -c advice.detachedHead=false clone ${MONGODB_PLUGIN_SOURCES} --branch ${MONGODB_PLUGIN_VERSION} --depth 1 --single-branch /tmp/mongodb-plugin-${MONGODB_PLUGIN_VERSION} && \ - cd /tmp/mongodb-plugin-${MONGODB_PLUGIN_VERSION} && \ - make && \ - strip /tmp/mongodb-plugin-${MONGODB_PLUGIN_VERSION}/zabbix-agent2-plugin-mongodb && \ - cp /tmp/mongodb-plugin-${MONGODB_PLUGIN_VERSION}/zabbix-agent2-plugin-mongodb ${ZBX_OUTPUT_DIR}/agent2/sbin/zabbix-agent2-plugin/mongodb && \ - cp /tmp/mongodb-plugin-${MONGODB_PLUGIN_VERSION}/mongodb.conf ${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.d/plugins.d/ && \ - cd /tmp/ && \ - git -c advice.detachedHead=false clone ${POSTGRESQL_PLUGIN_SOURCES} --branch ${POSTGRESQL_PLUGIN_VERSION} --depth 1 --single-branch /tmp/postgresql-plugin-${POSTGRESQL_PLUGIN_VERSION} && \ - cd /tmp/postgresql-plugin-${POSTGRESQL_PLUGIN_VERSION} && \ - make && \ - strip /tmp/postgresql-plugin-${POSTGRESQL_PLUGIN_VERSION}/zabbix-agent2-plugin-postgresql && \ - cp /tmp/postgresql-plugin-${POSTGRESQL_PLUGIN_VERSION}/zabbix-agent2-plugin-postgresql ${ZBX_OUTPUT_DIR}/agent2/sbin/zabbix-agent2-plugin/postgresql && \ - cp /tmp/postgresql-plugin-${POSTGRESQL_PLUGIN_VERSION}/postgresql.conf ${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.d/plugins.d/ && \ - cd /tmp/ && \ - git -c advice.detachedHead=false clone ${MSSQL_PLUGIN_SOURCES} --branch ${MSSQL_PLUGIN_VERSION} --depth 1 --single-branch /tmp/mssql-plugin-${MSSQL_PLUGIN_VERSION} && \ - cd /tmp/mssql-plugin-${MSSQL_PLUGIN_VERSION} && \ - make && \ - strip /tmp/mssql-plugin-${MSSQL_PLUGIN_VERSION}/zabbix-agent2-plugin-mssql && \ - cp /tmp/mssql-plugin-${MSSQL_PLUGIN_VERSION}/zabbix-agent2-plugin-mssql ${ZBX_OUTPUT_DIR}/agent2/sbin/zabbix-agent2-plugin/mssql && \ - cp /tmp/mssql-plugin-${MSSQL_PLUGIN_VERSION}/mssql.conf ${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.d/plugins.d/ && \ - cd /tmp/ && \ - git -c advice.detachedHead=false clone ${EMBER_PLUS_PLUGIN_SOURCES} --branch ${EMBER_PLUS_PLUGIN_VERSION} --depth 1 --single-branch /tmp/ember-plugin-${EMBER_PLUS_PLUGIN_VERSION} && \ - cd /tmp/ember-plugin-${EMBER_PLUS_PLUGIN_VERSION} && \ - make && \ - strip /tmp/ember-plugin-${EMBER_PLUS_PLUGIN_VERSION}/zabbix-agent2-plugin-ember-plus && \ - cp /tmp/ember-plugin-${EMBER_PLUS_PLUGIN_VERSION}/zabbix-agent2-plugin-ember-plus ${ZBX_OUTPUT_DIR}/agent2/sbin/zabbix-agent2-plugin/ember-plus && \ - cp /tmp/ember-plugin-${EMBER_PLUS_PLUGIN_VERSION}/ember.conf ${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.d/plugins.d/ && \ - cd /tmp/ && \ - git -c advice.detachedHead=false clone ${NVIDIA_GPU_PLUGIN_SOURCES} --branch ${NVIDIA_GPU_PLUGIN_VERSION} --depth 1 --single-branch /tmp/nvidia-gpu-plugin-${NVIDIA_GPU_PLUGIN_VERSION} && \ - cd /tmp/nvidia-gpu-plugin-${NVIDIA_GPU_PLUGIN_VERSION} && \ - make && \ - strip /tmp/nvidia-gpu-plugin-${NVIDIA_GPU_PLUGIN_VERSION}/zabbix-agent2-plugin-nvidia-gpu && \ - cp /tmp/nvidia-gpu-plugin-${NVIDIA_GPU_PLUGIN_VERSION}/zabbix-agent2-plugin-nvidia-gpu ${ZBX_OUTPUT_DIR}/agent2/sbin/zabbix-agent2-plugin/nvidia-gpu && \ - cp /tmp/nvidia-gpu-plugin-${NVIDIA_GPU_PLUGIN_VERSION}/nvidia.conf ${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.d/plugins.d/ + --datadir=/usr/lib \ + --libdir=/usr/lib/zabbix \ + --prefix=/usr \ + --sysconfdir=/etc/zabbix \ + --enable-ipv6 \ + --enable-agent \ + --enable-agent2 \ + --enable-java \ + --enable-proxy \ + --with-ares \ + --with-ldap \ + --with-libcurl \ +# --with-libmodbus \ + --with-libpcre2 \ + --with-libxml2 \ + --with-${DB_TYPE} \ + --with-net-snmp \ + --with-openipmi \ + --with-openssl \ + --with-ssh \ + --with-unixodbc \ + --silent && \ + jobs="$(nproc)" && \ + make -j"${jobs}" -s dbschema && \ + make -j"${jobs}" -s && \ + make -j"${jobs}" -s gettext && \ + cat "database/${DB_TYPE}/schema.sql" > "database/${DB_TYPE}/create.sql" && \ + gzip -c "database/${DB_TYPE}/create.sql" > "${ZBX_OUTPUT_DIR}/proxy/database/${DB_TYPE}/create.sql.gz" && \ + strip src/zabbix_agent/zabbix_agentd && \ + strip src/zabbix_proxy/zabbix_proxy && \ + strip src/zabbix_get/zabbix_get && \ + strip src/zabbix_sender/zabbix_sender && \ + strip src/go/bin/zabbix_agent2 || true && \ + cp src/zabbix_agent/zabbix_agentd "${ZBX_OUTPUT_DIR}/agent/sbin/" && \ + cp conf/zabbix_agentd.conf "${ZBX_OUTPUT_DIR}/agent/conf/zabbix_agentd.conf.dist" && \ + cp -a conf/zabbix_agentd/. "${ZBX_OUTPUT_DIR}/agent/conf/" && \ + cp -a /tmp/conf/agent/. "${ZBX_OUTPUT_DIR}/agent/conf/" && \ + cp src/go/bin/zabbix_agent2 "${ZBX_OUTPUT_DIR}/agent2/sbin/" && \ + cp src/go/conf/zabbix_agent2.conf "${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.conf.dist" && \ + cp -a src/go/conf/zabbix_agent2.d/. "${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.d/" && \ + cp -a /tmp/conf/agent2/. "${ZBX_OUTPUT_DIR}/agent2/conf/" && \ + cp src/zabbix_proxy/zabbix_proxy "${ZBX_OUTPUT_DIR}/proxy/sbin/" && \ + cp conf/zabbix_proxy.conf "${ZBX_OUTPUT_DIR}/proxy/conf/zabbix_proxy.conf.dist" && \ + cp -a /tmp/conf/proxy/. "${ZBX_OUTPUT_DIR}/proxy/conf/" && \ + cp -a src/zabbix_java/bin/. "${ZBX_OUTPUT_DIR}/java_gateway/sbin/bin/" && \ + cp -a src/zabbix_java/lib/. "${ZBX_OUTPUT_DIR}/java_gateway/sbin/lib/" && \ + cp src/zabbix_get/zabbix_get "${ZBX_OUTPUT_DIR}/general/bin/" && \ + cp src/zabbix_sender/zabbix_sender "${ZBX_OUTPUT_DIR}/general/bin/" && \ + make -s distclean + +RUN set -eux && \ + cd "${ZBX_SOURCES_DIR}" && \ + curl --retry 5 --retry-all-errors --retry-delay 2 --tlsv1.2 -sSf -L \ + "https://raw.githubusercontent.com/notofonts/noto-cjk/main/Sans/OTF/Japanese/NotoSansCJKjp-Regular.otf" \ + -o ui/assets/fonts/NotoSansCJKjp-Regular.otf && \ + curl --retry 5 --retry-all-errors --retry-delay 2 --tlsv1.2 -sSf -L \ + "https://raw.githubusercontent.com/notofonts/noto-cjk/main/Sans/LICENSE" \ + -o ui/assets/fonts/OFL.txt && \ + sed -i -r 's/(define\(.*_FONT_NAME.*)DejaVuSans/\1NotoSansCJKjp-Regular/' ui/include/defines.inc.php && \ + sed -i -r 's/\.ttf/\.otf/' ui/include/graphs.inc.php && \ + rm -f ui/assets/fonts/DejaVuSans.ttf && \ + chmod o+r ui/assets/fonts/* + +RUN --mount=type=cache,target=/root/.cache/go-build \ + --mount=type=cache,target=/root/go/pkg/mod \ + set -eux && \ + mkdir -p "${ZBX_OUTPUT_DIR}/agent2/sbin/zabbix-agent2-plugin" && \ + mkdir -p "${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.d/plugins.d" && \ + build_plugin() { \ + name="$1"; \ + repo="$2"; \ + version="$3"; \ + binary="$4"; \ + conf="$5"; \ + outname="$6"; \ + workdir="/tmp/${name}-plugin-${version}"; \ + rm -rf "$workdir"; \ + git -c advice.detachedHead=false clone "$repo" \ + --branch "$version" \ + --depth 1 \ + --single-branch \ + "$workdir"; \ + cd "$workdir"; \ + make; \ + strip "$binary" || true; \ + cp "$binary" "${ZBX_OUTPUT_DIR}/agent2/sbin/zabbix-agent2-plugin/${outname}"; \ + cp "$conf" "${ZBX_OUTPUT_DIR}/agent2/conf/zabbix_agent2.d/plugins.d/"; \ + make clean; \ + }; \ + build_plugin mongodb "${MONGODB_PLUGIN_SOURCES}" "${MONGODB_PLUGIN_VERSION}" \ + zabbix-agent2-plugin-mongodb mongodb.conf mongodb && \ + build_plugin postgresql "${POSTGRESQL_PLUGIN_SOURCES}" "${POSTGRESQL_PLUGIN_VERSION}" \ + zabbix-agent2-plugin-postgresql postgresql.conf postgresql && \ + build_plugin mssql "${MSSQL_PLUGIN_SOURCES}" "${MSSQL_PLUGIN_VERSION}" \ + zabbix-agent2-plugin-mssql mssql.conf mssql && \ + build_plugin ember "${EMBER_PLUS_PLUGIN_SOURCES}" "${EMBER_PLUS_PLUGIN_VERSION}" \ + zabbix-agent2-plugin-ember-plus ember.conf ember-plus && \ + build_plugin nvidia-gpu "${NVIDIA_GPU_PLUGIN_SOURCES}" "${NVIDIA_GPU_PLUGIN_VERSION}" \ + zabbix-agent2-plugin-nvidia-gpu nvidia.conf nvidia-gpu diff --git a/Dockerfiles/java-gateway/centos/Dockerfile b/Dockerfiles/java-gateway/centos/Dockerfile index 6a3dd6680..4665ed683 100644 --- a/Dockerfiles/java-gateway/centos/Dockerfile +++ b/Dockerfiles/java-gateway/centos/Dockerfile @@ -41,13 +41,14 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ java-21-openjdk-headless \ findutils" && \ microdnf -y install \ - --disablerepo "*" \ - --enablerepo "baseos" \ - --enablerepo "appstream" \ + --disablerepo="*" \ + --enablerepo="baseos" \ + --enablerepo="appstream" \ --setopt=install_weak_deps=0 \ --setopt=keepcache=0 \ --best \ - --nodocs ${INSTALL_PKGS} && \ + --nodocs \ + ${INSTALL_PKGS} && \ groupadd \ --system \ --gid 1995 \ @@ -74,7 +75,7 @@ EXPOSE 10052/tcp WORKDIR ${ZABBIX_USER_HOME_DIR} -COPY ["docker-entrypoint.sh", "/usr/bin/"] +COPY docker-entrypoint.sh /usr/bin/ ENTRYPOINT ["docker-entrypoint.sh"] diff --git a/Dockerfiles/java-gateway/ol/Dockerfile b/Dockerfiles/java-gateway/ol/Dockerfile index d3a908366..dabae5a2b 100644 --- a/Dockerfiles/java-gateway/ol/Dockerfile +++ b/Dockerfiles/java-gateway/ol/Dockerfile @@ -1,4 +1,4 @@ -# syntax=docker/dockerfile:1 +# syntax=docker/dockerfile:1.6 ARG OS_BASE_IMAGE=container-registry.oracle.com/os/oraclelinux:10-slim ARG MAJOR_VERSION=7.4 ARG ZBX_VERSION=${MAJOR_VERSION}.8 @@ -13,9 +13,10 @@ 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} \ - ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \ - ZABBIX_CONF_DIR="/etc/zabbix" + 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" \ @@ -29,7 +30,8 @@ LABEL org.opencontainers.image.authors="Alexey Pustovalov /dev/null' && \ - chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ ${ZABBIX_WWW_ROOT}/include/defines.inc.php ${ZABBIX_WWW_ROOT}/modules/ && \ - chgrp -R 0 ${ZABBIX_CONF_DIR}/ ${ZABBIX_WWW_ROOT}/include/defines.inc.php ${ZABBIX_WWW_ROOT}/modules/ && \ - chmod -R g=u ${ZABBIX_CONF_DIR}/ ${ZABBIX_WWW_ROOT}/include/defines.inc.php ${ZABBIX_WWW_ROOT}/modules/ && \ - chown --quiet -R zabbix:root ${ZABBIX_USER_HOME_DIR}/ /etc/httpd/ /etc/php-fpm.d/ /etc/php-fpm.conf && \ - chgrp -R 0 ${ZABBIX_USER_HOME_DIR}/ /etc/httpd/ /etc/php-fpm.d/ /etc/php-fpm.conf && \ - chmod -R g=u ${ZABBIX_USER_HOME_DIR}/ /etc/httpd/ /etc/php-fpm.d/ /etc/php-fpm.conf && \ - chown --quiet -R zabbix:root /run/httpd/ /var/lib/php/session/ && \ - chgrp -R 0 /run/httpd/ /var/lib/php/session/ && \ - chmod -R g=u /run/httpd/ /var/lib/php/session/ && \ + mkdir -p ${ZABBIX_CONF_DIR} \ + ${ZABBIX_CONF_DIR}/web \ + ${ZABBIX_CONF_DIR}/web/certs \ + ${ZABBIX_USER_HOME_DIR}/enc \ + ${ZABBIX_USER_HOME_DIR}/enc_internal \ + /var/lib/php/session && \ + rm -rf /etc/httpd/conf.d/default.conf \ + /etc/httpd/conf.d/ssl.conf \ + /etc/httpd/conf.d/autoindex.conf \ + /etc/httpd/conf.d/php.conf \ + /etc/httpd/conf.d/userdir.conf \ + /etc/httpd/conf.d/welcome.conf \ + /etc/php-fpm.d/www.conf && \ + ln -sf "${ZABBIX_CONF_DIR}/web/zabbix.conf.php" "${ZABBIX_WWW_ROOT}/conf/zabbix.conf.php" && \ + ln -sf "${ZABBIX_CONF_DIR}/web/maintenance.inc.php" "${ZABBIX_WWW_ROOT}/conf/maintenance.inc.php" && \ + awk "/display/ && /true/ {gsub(/^[ \t]+|[ \t]+$/, \"\", \$0); print \$0}" "${ZABBIX_WWW_ROOT}/include/locales.inc.php" | \ + cut -d"'" -f 2 | sort -u | \ + xargs -r -I '{}' bash -c 'echo "{}" && localedef -c -i {} -f UTF-8 {}.UTF-8 2>/dev/null' && \ + FIX_PERM_LIST="\ + ${ZABBIX_CONF_DIR}/ \ + ${ZABBIX_WWW_ROOT}/include/defines.inc.php \ + ${ZABBIX_WWW_ROOT}/modules/ \ + ${ZABBIX_USER_HOME_DIR}/ \ + /etc/httpd/ \ + /etc/php-fpm.d/ \ + /etc/php-fpm.conf \ + /run/httpd/ \ + /var/lib/php/session/" && \ + chown --quiet -R zabbix:0 ${FIX_PERM_LIST} && \ + chmod -R g=u ${FIX_PERM_LIST} && \ microdnf -y remove \ findutils \ glibc-locale-source \ @@ -122,7 +133,7 @@ EXPOSE 8080/tcp 8443/tcp WORKDIR ${ZABBIX_WWW_ROOT} -COPY ["docker-entrypoint.sh", "/usr/bin/"] +COPY docker-entrypoint.sh /usr/bin/ USER 1997 diff --git a/Dockerfiles/web-apache-pgsql/centos/Dockerfile b/Dockerfiles/web-apache-pgsql/centos/Dockerfile index 94d2458b0..758e72931 100644 --- a/Dockerfiles/web-apache-pgsql/centos/Dockerfile +++ b/Dockerfiles/web-apache-pgsql/centos/Dockerfile @@ -70,23 +70,25 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ gzip \ supervisor" && \ microdnf -y install \ - --disablerepo "*" \ - --enablerepo "extras-common" \ - --setopt=install_weak_deps=0 \ - --setopt=keepcache=0 \ - --best \ - --nodocs epel-release && \ + --disablerepo="*" \ + --enablerepo="extras-common" \ + --setopt=install_weak_deps=0 \ + --setopt=keepcache=0 \ + --best \ + --nodocs \ + epel-release && \ microdnf -y install \ - --disablerepo "*" \ - --enablerepo "baseos" \ - --enablerepo "appstream" \ - --enablerepo="epel" \ - --setopt=install_weak_deps=0 \ - --setopt=keepcache=0 \ - --best \ - --nodocs ${INSTALL_PKGS} && \ + --disablerepo="*" \ + --enablerepo="baseos" \ + --enablerepo="appstream" \ + --enablerepo="epel" \ + --setopt=install_weak_deps=0 \ + --setopt=keepcache=0 \ + --best \ + --nodocs \ + ${INSTALL_PKGS} && \ microdnf -y reinstall \ - --enablerepo "baseos" \ + --enablerepo="baseos" \ --setopt=install_weak_deps=0 \ --setopt=keepcache=0 \ --best \ diff --git a/Dockerfiles/web-apache-pgsql/ol/Dockerfile b/Dockerfiles/web-apache-pgsql/ol/Dockerfile index dddcb3068..14d12887a 100644 --- a/Dockerfiles/web-apache-pgsql/ol/Dockerfile +++ b/Dockerfiles/web-apache-pgsql/ol/Dockerfile @@ -1,10 +1,22 @@ -# syntax=docker/dockerfile:1 +# syntax=docker/dockerfile:1.6 ARG OS_BASE_IMAGE=container-registry.oracle.com/os/oraclelinux:10-slim ARG MAJOR_VERSION=7.4 ARG ZBX_VERSION=${MAJOR_VERSION}.8 ARG BUILD_BASE_IMAGE=zabbix-build-pgsql:ol-${ZBX_VERSION} FROM ${BUILD_BASE_IMAGE} AS builder +FROM builder AS clean_builder + +ARG ZBX_VERSION + +RUN set -eux && \ + rm -rf \ + "/tmp/zabbix-${ZBX_VERSION}/ui/tests" \ + "/tmp/zabbix-${ZBX_VERSION}/ui/conf/zabbix.conf.php" \ + "/tmp/zabbix-${ZBX_VERSION}/ui/conf/zabbix.conf.php.example" \ + "/tmp/zabbix-${ZBX_VERSION}/ui/conf/maintenance.inc.php" && \ + find "/tmp/zabbix-${ZBX_VERSION}/ui/locale" -name '*.po' -delete && \ + find "/tmp/zabbix-${ZBX_VERSION}/ui/locale" -name '*.sh' -delete FROM ${OS_BASE_IMAGE} @@ -13,10 +25,11 @@ 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} \ - ZABBIX_CONF_DIR="/etc/zabbix" \ - ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \ - ZABBIX_WWW_ROOT="/usr/share/zabbix" + ZBX_VERSION=${ZBX_VERSION} \ + ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_CONF_DIR=/etc/zabbix \ + ZABBIX_USER_HOME_DIR=/var/lib/zabbix \ + ZABBIX_WWW_ROOT=/usr/share/zabbix LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix web-interface based on Apache2 web server with PostgreSQL database support" \ @@ -30,9 +43,9 @@ LABEL org.opencontainers.image.authors="Alexey Pustovalov /dev/null' && \ - chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ ${ZABBIX_WWW_ROOT}/include/defines.inc.php ${ZABBIX_WWW_ROOT}/modules/ && \ - chgrp -R 0 ${ZABBIX_CONF_DIR}/ ${ZABBIX_WWW_ROOT}/include/defines.inc.php ${ZABBIX_WWW_ROOT}/modules/ && \ - chmod -R g=u ${ZABBIX_CONF_DIR}/ ${ZABBIX_WWW_ROOT}/include/defines.inc.php ${ZABBIX_WWW_ROOT}/modules/ && \ - chown --quiet -R zabbix:root ${ZABBIX_USER_HOME_DIR}/ /etc/httpd/ /etc/php-fpm.d/ /etc/php-fpm.conf && \ - chgrp -R 0 ${ZABBIX_USER_HOME_DIR}/ /etc/httpd/ /etc/php-fpm.d/ /etc/php-fpm.conf && \ - chmod -R g=u ${ZABBIX_USER_HOME_DIR}/ /etc/httpd/ /etc/php-fpm.d/ /etc/php-fpm.conf && \ - chown --quiet -R zabbix:root /run/httpd/ /var/lib/php/session/ && \ - chgrp -R 0 /run/httpd/ /var/lib/php/session/ && \ - chmod -R g=u /run/httpd/ /var/lib/php/session/ && \ + mkdir -p ${ZABBIX_CONF_DIR} \ + ${ZABBIX_CONF_DIR}/web \ + ${ZABBIX_CONF_DIR}/web/certs \ + ${ZABBIX_USER_HOME_DIR}/enc \ + ${ZABBIX_USER_HOME_DIR}/enc_internal \ + /var/lib/php/session && \ + rm -rf /etc/httpd/conf.d/default.conf \ + /etc/httpd/conf.d/ssl.conf \ + /etc/httpd/conf.d/autoindex.conf \ + /etc/httpd/conf.d/php.conf \ + /etc/httpd/conf.d/userdir.conf \ + /etc/httpd/conf.d/welcome.conf \ + /etc/php-fpm.d/www.conf && \ + ln -sf "${ZABBIX_CONF_DIR}/web/zabbix.conf.php" "${ZABBIX_WWW_ROOT}/conf/zabbix.conf.php" && \ + ln -sf "${ZABBIX_CONF_DIR}/web/maintenance.inc.php" "${ZABBIX_WWW_ROOT}/conf/maintenance.inc.php" && \ + awk "/display/ && /true/ {gsub(/^[ \t]+|[ \t]+$/, \"\", \$0); print \$0}" "${ZABBIX_WWW_ROOT}/include/locales.inc.php" | \ + cut -d"'" -f 2 | sort -u | \ + xargs -r -I '{}' bash -c 'echo "{}" && localedef -c -i {} -f UTF-8 {}.UTF-8 2>/dev/null' && \ + FIX_PERM_LIST="\ + ${ZABBIX_CONF_DIR}/ \ + ${ZABBIX_WWW_ROOT}/include/defines.inc.php \ + ${ZABBIX_WWW_ROOT}/modules/ \ + ${ZABBIX_USER_HOME_DIR}/ \ + /etc/httpd/ \ + /etc/php-fpm.d/ \ + /etc/php-fpm.conf \ + /run/httpd/ \ + /var/lib/php/session/" && \ + chown --quiet -R zabbix:0 ${FIX_PERM_LIST} && \ + chmod -R g=u ${FIX_PERM_LIST} && \ microdnf -y remove \ findutils \ glibc-locale-source \ @@ -122,7 +133,7 @@ EXPOSE 8080/tcp 8443/tcp WORKDIR ${ZABBIX_WWW_ROOT} -COPY ["docker-entrypoint.sh", "/usr/bin/"] +COPY docker-entrypoint.sh /usr/bin/ USER 1997 diff --git a/Dockerfiles/web-nginx-mysql/centos/Dockerfile b/Dockerfiles/web-nginx-mysql/centos/Dockerfile index 071f1237a..687e00c63 100644 --- a/Dockerfiles/web-nginx-mysql/centos/Dockerfile +++ b/Dockerfiles/web-nginx-mysql/centos/Dockerfile @@ -68,23 +68,25 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ gzip \ supervisor" && \ microdnf -y install \ - --disablerepo "*" \ - --enablerepo "extras-common" \ - --setopt=install_weak_deps=0 \ - --setopt=keepcache=0 \ - --best \ - --nodocs epel-release && \ + --disablerepo="*" \ + --enablerepo="extras-common" \ + --setopt=install_weak_deps=0 \ + --setopt=keepcache=0 \ + --best \ + --nodocs \ + epel-release && \ microdnf -y install \ - --disablerepo "*" \ - --enablerepo "baseos" \ - --enablerepo "appstream" \ - --enablerepo="epel" \ - --setopt=install_weak_deps=0 \ - --setopt=keepcache=0 \ - --best \ - --nodocs ${INSTALL_PKGS} && \ + --disablerepo="*" \ + --enablerepo="baseos" \ + --enablerepo="appstream" \ + --enablerepo="epel" \ + --setopt=install_weak_deps=0 \ + --setopt=keepcache=0 \ + --best \ + --nodocs \ + ${INSTALL_PKGS} && \ microdnf -y reinstall \ - --enablerepo "baseos" \ + --enablerepo="baseos" \ --setopt=install_weak_deps=0 \ --setopt=keepcache=0 \ --best \ diff --git a/Dockerfiles/web-nginx-mysql/ol/Dockerfile b/Dockerfiles/web-nginx-mysql/ol/Dockerfile index 5019fae7c..6fb70b2bf 100644 --- a/Dockerfiles/web-nginx-mysql/ol/Dockerfile +++ b/Dockerfiles/web-nginx-mysql/ol/Dockerfile @@ -1,10 +1,22 @@ -# syntax=docker/dockerfile:1 +# syntax=docker/dockerfile:1.6 ARG OS_BASE_IMAGE=container-registry.oracle.com/os/oraclelinux:10-slim ARG MAJOR_VERSION=7.4 ARG ZBX_VERSION=${MAJOR_VERSION}.8 ARG BUILD_BASE_IMAGE=zabbix-build-mysql:ol-${ZBX_VERSION} FROM ${BUILD_BASE_IMAGE} AS builder +FROM builder AS clean_builder + +ARG ZBX_VERSION + +RUN set -eux && \ + rm -rf \ + "/tmp/zabbix-${ZBX_VERSION}/ui/tests" \ + "/tmp/zabbix-${ZBX_VERSION}/ui/conf/zabbix.conf.php" \ + "/tmp/zabbix-${ZBX_VERSION}/ui/conf/zabbix.conf.php.example" \ + "/tmp/zabbix-${ZBX_VERSION}/ui/conf/maintenance.inc.php" && \ + find "/tmp/zabbix-${ZBX_VERSION}/ui/locale" -name '*.po' -delete && \ + find "/tmp/zabbix-${ZBX_VERSION}/ui/locale" -name '*.sh' -delete FROM ${OS_BASE_IMAGE} @@ -13,10 +25,11 @@ 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} \ - ZABBIX_CONF_DIR="/etc/zabbix" \ - ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \ - ZABBIX_WWW_ROOT="/usr/share/zabbix" + ZBX_VERSION=${ZBX_VERSION} \ + ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_CONF_DIR=/etc/zabbix \ + ZABBIX_USER_HOME_DIR=/var/lib/zabbix \ + ZABBIX_WWW_ROOT=/usr/share/zabbix LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix web-interface based on Nginx web server with MySQL database support" \ @@ -30,9 +43,9 @@ LABEL org.opencontainers.image.authors="Alexey Pustovalov /dev/null' && \ - chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ ${ZABBIX_WWW_ROOT}/include/defines.inc.php ${ZABBIX_WWW_ROOT}/modules/ && \ - chgrp -R 0 ${ZABBIX_CONF_DIR}/ ${ZABBIX_WWW_ROOT}/include/defines.inc.php ${ZABBIX_WWW_ROOT}/modules/ && \ - chmod -R g=u ${ZABBIX_CONF_DIR}/ ${ZABBIX_WWW_ROOT}/include/defines.inc.php ${ZABBIX_WWW_ROOT}/modules/ && \ - chown --quiet -R zabbix:root ${ZABBIX_USER_HOME_DIR}/ /etc/nginx/ /etc/php-fpm.d/ /etc/php-fpm.conf /var/log/nginx/ && \ - chgrp -R 0 ${ZABBIX_USER_HOME_DIR}/ /etc/nginx/ /etc/php-fpm.d/ /etc/php-fpm.conf /var/log/nginx/ && \ - chmod -R g=u ${ZABBIX_USER_HOME_DIR}/ /etc/nginx/ /etc/php-fpm.d/ /etc/php-fpm.conf /var/log/nginx/ && \ - chown --quiet -R zabbix:root /var/lib/php/session/ && \ - chgrp -R 0 /var/lib/php/session/ && \ - chmod -R g=u /var/lib/php/session/ && \ + ln -sf "${ZABBIX_CONF_DIR}/web/zabbix.conf.php" "${ZABBIX_WWW_ROOT}/conf/zabbix.conf.php" && \ + ln -sf "${ZABBIX_CONF_DIR}/web/maintenance.inc.php" "${ZABBIX_WWW_ROOT}/conf/maintenance.inc.php" && \ + awk "/display/ && /true/ {gsub(/^[ \t]+|[ \t]+$/, \"\", \$0); print \$0}" "${ZABBIX_WWW_ROOT}/include/locales.inc.php" | \ + cut -d"'" -f 2 | sort -u | \ + xargs -r -I '{}' bash -c 'echo "{}" && localedef -c -i {} -f UTF-8 {}.UTF-8 2>/dev/null' && \ + FIX_PERM_LIST="\ + ${ZABBIX_CONF_DIR}/ \ + ${ZABBIX_WWW_ROOT}/include/defines.inc.php \ + ${ZABBIX_WWW_ROOT}/modules/ \ + ${ZABBIX_USER_HOME_DIR}/ \ + /etc/nginx/ \ + /etc/php-fpm.d/ \ + /etc/php-fpm.conf \ + /var/log/nginx/ \ + /var/lib/php/session/" && \ + chown --quiet -R zabbix:0 ${FIX_PERM_LIST} && \ + chmod -R g=u ${FIX_PERM_LIST} && \ microdnf -y remove \ findutils \ glibc-locale-source \ @@ -117,7 +128,7 @@ EXPOSE 8080/tcp 8443/tcp WORKDIR ${ZABBIX_WWW_ROOT} -COPY ["docker-entrypoint.sh", "/usr/bin/"] +COPY docker-entrypoint.sh /usr/bin/ USER 1997 diff --git a/Dockerfiles/web-nginx-pgsql/centos/Dockerfile b/Dockerfiles/web-nginx-pgsql/centos/Dockerfile index c3e779553..cf13098be 100644 --- a/Dockerfiles/web-nginx-pgsql/centos/Dockerfile +++ b/Dockerfiles/web-nginx-pgsql/centos/Dockerfile @@ -68,23 +68,25 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ gzip \ supervisor" && \ microdnf -y install \ - --disablerepo "*" \ - --enablerepo "extras-common" \ - --setopt=install_weak_deps=0 \ - --setopt=keepcache=0 \ - --best \ - --nodocs epel-release && \ + --disablerepo="*" \ + --enablerepo="extras-common" \ + --setopt=install_weak_deps=0 \ + --setopt=keepcache=0 \ + --best \ + --nodocs \ + epel-release && \ microdnf -y install \ - --disablerepo "*" \ - --enablerepo "baseos" \ - --enablerepo "appstream" \ - --enablerepo="epel" \ - --setopt=install_weak_deps=0 \ - --setopt=keepcache=0 \ - --best \ - --nodocs ${INSTALL_PKGS} && \ + --disablerepo="*" \ + --enablerepo="baseos" \ + --enablerepo="appstream" \ + --enablerepo="epel" \ + --setopt=install_weak_deps=0 \ + --setopt=keepcache=0 \ + --best \ + --nodocs \ + ${INSTALL_PKGS} && \ microdnf -y reinstall \ - --enablerepo "baseos" \ + --enablerepo="baseos" \ --setopt=install_weak_deps=0 \ --setopt=keepcache=0 \ --best \ diff --git a/Dockerfiles/web-nginx-pgsql/ol/Dockerfile b/Dockerfiles/web-nginx-pgsql/ol/Dockerfile index 07ac74c68..bc0f8e63c 100644 --- a/Dockerfiles/web-nginx-pgsql/ol/Dockerfile +++ b/Dockerfiles/web-nginx-pgsql/ol/Dockerfile @@ -1,10 +1,22 @@ -# syntax=docker/dockerfile:1 +# syntax=docker/dockerfile:1.6 ARG OS_BASE_IMAGE=container-registry.oracle.com/os/oraclelinux:10-slim ARG MAJOR_VERSION=7.4 ARG ZBX_VERSION=${MAJOR_VERSION}.8 ARG BUILD_BASE_IMAGE=zabbix-build-pgsql:ol-${ZBX_VERSION} FROM ${BUILD_BASE_IMAGE} AS builder +FROM builder AS clean_builder + +ARG ZBX_VERSION + +RUN set -eux && \ + rm -rf \ + "/tmp/zabbix-${ZBX_VERSION}/ui/tests" \ + "/tmp/zabbix-${ZBX_VERSION}/ui/conf/zabbix.conf.php" \ + "/tmp/zabbix-${ZBX_VERSION}/ui/conf/zabbix.conf.php.example" \ + "/tmp/zabbix-${ZBX_VERSION}/ui/conf/maintenance.inc.php" && \ + find "/tmp/zabbix-${ZBX_VERSION}/ui/locale" -name '*.po' -delete && \ + find "/tmp/zabbix-${ZBX_VERSION}/ui/locale" -name '*.sh' -delete FROM ${OS_BASE_IMAGE} @@ -13,10 +25,11 @@ 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} \ - ZABBIX_CONF_DIR="/etc/zabbix" \ - ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \ - ZABBIX_WWW_ROOT="/usr/share/zabbix" + ZBX_VERSION=${ZBX_VERSION} \ + ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_CONF_DIR=/etc/zabbix \ + ZABBIX_USER_HOME_DIR=/var/lib/zabbix \ + ZABBIX_WWW_ROOT=/usr/share/zabbix LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ org.opencontainers.image.description="Zabbix web-interface based on Nginx web server with PostgreSQL database support" \ @@ -30,9 +43,9 @@ LABEL org.opencontainers.image.authors="Alexey Pustovalov /dev/null' && \ - chown --quiet -R zabbix:root ${ZABBIX_CONF_DIR}/ ${ZABBIX_WWW_ROOT}/include/defines.inc.php ${ZABBIX_WWW_ROOT}/modules/ && \ - chgrp -R 0 ${ZABBIX_CONF_DIR}/ ${ZABBIX_WWW_ROOT}/include/defines.inc.php ${ZABBIX_WWW_ROOT}/modules/ && \ - chmod -R g=u ${ZABBIX_CONF_DIR}/ ${ZABBIX_WWW_ROOT}/include/defines.inc.php ${ZABBIX_WWW_ROOT}/modules/ && \ - chown --quiet -R zabbix:root ${ZABBIX_USER_HOME_DIR}/ /etc/nginx/ /etc/php-fpm.d/ /etc/php-fpm.conf /var/log/nginx/ && \ - chgrp -R 0 ${ZABBIX_USER_HOME_DIR}/ /etc/nginx/ /etc/php-fpm.d/ /etc/php-fpm.conf /var/log/nginx/ && \ - chmod -R g=u ${ZABBIX_USER_HOME_DIR}/ /etc/nginx/ /etc/php-fpm.d/ /etc/php-fpm.conf /var/log/nginx/ && \ - chown --quiet -R zabbix:root /var/lib/php/session/ && \ - chgrp -R 0 /var/lib/php/session/ && \ - chmod -R g=u /var/lib/php/session/ && \ + ln -sf "${ZABBIX_CONF_DIR}/web/zabbix.conf.php" "${ZABBIX_WWW_ROOT}/conf/zabbix.conf.php" && \ + ln -sf "${ZABBIX_CONF_DIR}/web/maintenance.inc.php" "${ZABBIX_WWW_ROOT}/conf/maintenance.inc.php" && \ + awk "/display/ && /true/ {gsub(/^[ \t]+|[ \t]+$/, \"\", \$0); print \$0}" "${ZABBIX_WWW_ROOT}/include/locales.inc.php" | \ + cut -d"'" -f 2 | sort -u | \ + xargs -r -I '{}' bash -c 'echo "{}" && localedef -c -i {} -f UTF-8 {}.UTF-8 2>/dev/null' && \ + FIX_PERM_LIST="\ + ${ZABBIX_CONF_DIR}/ \ + ${ZABBIX_WWW_ROOT}/include/defines.inc.php \ + ${ZABBIX_WWW_ROOT}/modules/ \ + ${ZABBIX_USER_HOME_DIR}/ \ + /etc/nginx/ \ + /etc/php-fpm.d/ \ + /etc/php-fpm.conf \ + /var/log/nginx/ \ + /var/lib/php/session/" && \ + chown --quiet -R zabbix:0 ${FIX_PERM_LIST} && \ + chmod -R g=u ${FIX_PERM_LIST} && \ microdnf -y remove \ findutils \ glibc-locale-source \ @@ -117,7 +128,7 @@ EXPOSE 8080/tcp 8443/tcp WORKDIR ${ZABBIX_WWW_ROOT} -COPY ["docker-entrypoint.sh", "/usr/bin/"] +COPY docker-entrypoint.sh /usr/bin/ USER 1997 diff --git a/Dockerfiles/web-service/centos/Dockerfile b/Dockerfiles/web-service/centos/Dockerfile index cfbcdcb8e..4445d3fba 100644 --- a/Dockerfiles/web-service/centos/Dockerfile +++ b/Dockerfiles/web-service/centos/Dockerfile @@ -42,21 +42,23 @@ RUN --mount=type=tmpfs,target=/var/lib/dnf/ \ ca-certificates \ shadow-utils" && \ microdnf -y install \ - --disablerepo "*" \ - --enablerepo "extras-common" \ - --setopt=install_weak_deps=0 \ - --setopt=keepcache=0 \ - --best \ - --nodocs epel-release && \ + --disablerepo="*" \ + --enablerepo="extras-common" \ + --setopt=install_weak_deps=0 \ + --setopt=keepcache=0 \ + --best \ + --nodocs \ + epel-release && \ microdnf -y install \ - --disablerepo "*" \ - --enablerepo "baseos" \ - --enablerepo "appstream" \ - --enablerepo="epel" \ - --setopt=install_weak_deps=0 \ - --setopt=keepcache=0 \ - --best \ - --nodocs ${INSTALL_PKGS} && \ + --disablerepo="*" \ + --enablerepo="baseos" \ + --enablerepo="appstream" \ + --enablerepo="epel" \ + --setopt=install_weak_deps=0 \ + --setopt=keepcache=0 \ + --best \ + --nodocs \ + ${INSTALL_PKGS} && \ groupadd \ --system \ --gid 1995 \ @@ -81,7 +83,7 @@ EXPOSE 10053/tcp WORKDIR ${ZABBIX_USER_HOME_DIR} -COPY ["docker-entrypoint.sh", "/usr/bin/"] +COPY docker-entrypoint.sh /usr/bin/ ENTRYPOINT ["docker-entrypoint.sh"] diff --git a/Dockerfiles/web-service/ol/Dockerfile b/Dockerfiles/web-service/ol/Dockerfile index db8e4ca2c..cac0c0d75 100644 --- a/Dockerfiles/web-service/ol/Dockerfile +++ b/Dockerfiles/web-service/ol/Dockerfile @@ -1,4 +1,4 @@ -# syntax=docker/dockerfile:1 +# syntax=docker/dockerfile:1.6 ARG OS_BASE_IMAGE=container-registry.oracle.com/os/oraclelinux:10-slim ARG MAJOR_VERSION=7.4 ARG ZBX_VERSION=${MAJOR_VERSION}.8 @@ -13,9 +13,10 @@ 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} \ - ZABBIX_USER_HOME_DIR="/var/lib/zabbix" \ - ZABBIX_CONF_DIR="/etc/zabbix" \ + ZBX_VERSION=${ZBX_VERSION} \ + ZBX_SOURCES=${ZBX_SOURCES} \ + ZABBIX_USER_HOME_DIR=/var/lib/zabbix \ + ZABBIX_CONF_DIR=/etc/zabbix \ PATH=/usr/lib64/chromium-browser:$PATH LABEL org.opencontainers.image.authors="Alexey Pustovalov " \ @@ -30,9 +31,9 @@ LABEL org.opencontainers.image.authors="Alexey Pustovalov