diff --git a/wazuh-dashboard/Dockerfile b/wazuh-dashboard/Dockerfile index 67799585..8599e4ab 100644 --- a/wazuh-dashboard/Dockerfile +++ b/wazuh-dashboard/Dockerfile @@ -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 diff --git a/wazuh-dashboard/config/entrypoint.sh b/wazuh-dashboard/config/entrypoint.sh index 57649251..b05f93da 100644 --- a/wazuh-dashboard/config/entrypoint.sh +++ b/wazuh-dashboard/config/entrypoint.sh @@ -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 ##############################################################################