Change Dockerfile from Wazuh dashboard with multistage build

This commit is contained in:
vcerenu
2022-03-04 18:49:49 -03:00
parent 9f1dec3338
commit 0c9563ce94
2 changed files with 39 additions and 54 deletions
+39 -8
View File
@@ -1,5 +1,5 @@
# Wazuh Docker Copyright (C) 2021 Wazuh Inc. (License GPLv2)
FROM ubuntu:focal
FROM ubuntu:focal AS builder
ARG WAZUH_VERSION=4.3.0-1
@@ -11,18 +11,11 @@ RUN curl https://packages-dev.wazuh.com/pre-release/apt/pool/main/w/wazuh-dashbo
dpkg -i wazuh-dashboard_${WAZUH_VERSION}_amd64.deb && \
apt-get clean -y && rm -rf wazuh-dashboard_${WAZUH_VERSION}_amd64.deb
COPY config/entrypoint.sh /
COPY config/wazuh_app_config.sh /
COPY config/opensearch_dashboards.yml /etc/wazuh-dashboard/
COPY config/wazuh.yml /usr/share/wazuh-dashboard/data/wazuh/config/
RUN chmod 700 /entrypoint.sh
RUN chmod 700 /wazuh_app_config.sh
RUN chown 101:101 /etc/wazuh-dashboard/opensearch_dashboards.yml && chmod 664 /etc/wazuh-dashboard/opensearch_dashboards.yml
RUN mkdir -p /usr/share/wazuh-dashboard/data/wazuh && chown -R 101:101 /usr/share/wazuh-dashboard/data/wazuh && chmod -R 775 /usr/share/wazuh-dashboard/data/wazuh
@@ -31,6 +24,44 @@ RUN mkdir -p /usr/share/wazuh-dashboard/data/wazuh/config && chown -R 101:101 /u
RUN mkdir -p /usr/share/wazuh-dashboard/data/wazuh/logs && chown -R 101:101 /usr/share/wazuh-dashboard/data/wazuh/logs && chmod -R 775 /usr/share/wazuh-dashboard/data/wazuh/logs
################################################################################
# Build stage 1 (the actual Wazuh dashboard image):
#
# Copy wazuh-dashboard from stage 0
# Add entrypoint
# Add wazuh_app_config
################################################################################
FROM ubuntu:focal
ENV USER="wazuh-dashboard" \
GROUP="wazuh-dashboard" \
NAME="wazuh-dashboard" \
INSTALL_DIR="/usr/share/wazuh-dashboard"
RUN getent group $GROUP || groupadd -r -g 1000 $GROUP
RUN useradd --system \
--uid 1000 \
--no-create-home \
--home-dir $INSTALL_DIR \
--gid $GROUP \
--shell /sbin/nologin \
--comment "$USER user" \
$USER
COPY config/entrypoint.sh /
COPY config/wazuh_app_config.sh /
RUN chmod 700 /entrypoint.sh
RUN chmod 700 /wazuh_app_config.sh
COPY --from=builder --chown=1000:1000 /usr/share/wazuh-dashboard /usr/share/wazuh-dashboard
COPY --from=builder --chown=1000:1000 /var/log/wazuh-dashboard /var/log/wazuh-dashboard
COPY --from=builder --chown=1000:1000 /run/wazuh-dashboard /run/wazuh-dashboard
COPY --from=builder --chown=1000:1000 /etc/wazuh-dashboard /etc/wazuh-dashboard
# Services ports
EXPOSE 443
-46
View File
@@ -1,52 +1,6 @@
#!/bin/bash
# Wazuh Docker Copyright (C) 2021 Wazuh Inc. (License GPLv2)
set -e
##############################################################################
# Waiting for Wazuh indexer
##############################################################################
if [ "x${INDEXER_URL}" == "x" ]; then
if [[ ${ENABLED_SECURITY} == "false" ]]; then
export idx_url="http://wazuh1.indexer:9200"
else
export idx_url="https://wazuh1.indexer:9200"
fi
else
export idx_url="${INDEXER_URL}"
fi
export auth="--user ${INDEXER_USERNAME}:${INDEXER_PASSWORD} -k"
until curl -XGET $idx_url ${auth}; do
>&2 echo "Wazuh indexer is unavailable - sleeping"
sleep 5
done
sleep 2
>&2 echo "Elasticsearch is up."
##############################################################################
# Waiting for wazuh alerts template
##############################################################################
strlen=0
while [[ $strlen -eq 0 ]]
do
template=$(curl ${auth} $idx_url/_cat/templates/wazuh -s)
strlen=${#template}
>&2 echo "Wazuh alerts template not loaded - sleeping."
sleep 2
done
sleep 2
>&2 echo "Wazuh alerts template is loaded."
##############################################################################
# Start Wazuh dashboard
##############################################################################