Compare commits

..
Author SHA1 Message Date
Wazuh CI f645653af9 Merge pull request #2340 from wazuh/enhancement/wqa2320-revert-bump-test-revert-option-modified
Revert bump test-revert-option-modified branch
2026-04-24 13:41:08 +02:00
wazuhci 13629cc549 feat: revert test-revert-option-modified references 2026-04-24 11:41:03 +00:00
Wazuh CI fe2fc14a3c Merge pull request #2339 from wazuh/enhancement/wqa2320-bump-test-revert-option-modified
Bump test-revert-option-modified branch
2026-04-24 13:34:48 +02:00
wazuhci 1358738d53 feat: bump test-revert-option-modified 2026-04-24 11:34:43 +00:00
Wazuh CI 0bcd2409ce Merge pull request #2329 from wazuh/enhancement/wqa2320-revert-bump-test-revert-option-modified
Revert bump test-revert-option-modified branch
2026-04-22 21:56:40 +02:00
wazuhci db9406b6d1 feat: revert test-revert-option-modified references 2026-04-22 19:56:35 +00:00
Wazuh CI ec777f0653 Merge pull request #2328 from wazuh/enhancement/wqa2320-bump-test-revert-option-modified
Bump test-revert-option-modified branch
2026-04-22 21:55:41 +02:00
wazuhci e1e8dab086 feat: bump test-revert-option-modified 2026-04-22 19:55:37 +00:00
22 changed files with 292 additions and 346 deletions
-1
View File
@@ -1,4 +1,3 @@
WAZUH_VERSION=5.0.0
WAZUH_IMAGE_VERSION=5.0.0
WAZUH_REGISTRY=docker.io
IMAGE_TAG=5.0.0
+1 -1
View File
@@ -218,4 +218,4 @@ jobs:
echo "Branch: ${{ steps.vars.outputs.branch_name }}"
echo "PR: ${{ steps.create_pr.outputs.pull_request_url }}"
echo "Revert bumper scripts logs:"
cat ${BUMP_LOG_PATH}/repository_bumper*log || true
cat ${BUMP_LOG_PATH}/repository_bumper*log || true
@@ -233,11 +233,6 @@ jobs:
source ${{ env.WORKFLOW_VENV }}/bin/activate
WAZUH_COMPONENTS='${{ needs.setup.outputs.WAZUH_COMPONENTS }}'
COMMIT_LIST='${{ needs.setup.outputs.COMMIT_LIST }}'
SCRIPT_PARAMS="--process ${{ env.PRESIGNED_URLS_SCRIPT_PROCESS }} \
--wazuh-version ${{ env.WAZUH_VERSION }} \
--aws-s3-bucket-dev ${{ env.LOCAL_AWS_S3_BUCKET_DEV }} \
--assistant-revision $ASSISTANT_REVISION "
# Parse components and their revisions
COMPONENTS=($(echo "$WAZUH_COMPONENTS" | jq -r '.[]'))
@@ -256,22 +251,29 @@ jobs:
for i in "${!COMPONENTS[@]}"; do
case "${COMPONENTS[$i]}" in
wazuh-manager)
SCRIPT_PARAMS+="--manager-revision ${REVISIONS[$i]} "
MANAGER_REVISION="${REVISIONS[$i]}"
;;
wazuh-dashboard)
SCRIPT_PARAMS+="--dashboard-revision ${REVISIONS[$i]} "
DASHBOARD_REVISION="${REVISIONS[$i]}"
;;
wazuh-indexer)
SCRIPT_PARAMS+="--indexer-revision ${REVISIONS[$i]} "
INDEXER_REVISION="${REVISIONS[$i]}"
;;
wazuh-agent)
SCRIPT_PARAMS+="--agent-revision ${REVISIONS[$i]} "
AGENT_REVISION="${REVISIONS[$i]}"
;;
esac
done
python ${{ env.GENERATE_PRESIGNED_URLS_SCRIPT_PATH }} \
$SCRIPT_PARAMS
--process ${{ env.PRESIGNED_URLS_SCRIPT_PROCESS }} \
--wazuh-version ${{ env.WAZUH_VERSION }} \
--aws-s3-bucket-dev ${{ env.LOCAL_AWS_S3_BUCKET_DEV }} \
--indexer-revision $INDEXER_REVISION \
--manager-revision $MANAGER_REVISION \
--dashboard-revision $DASHBOARD_REVISION \
--agent-revision $AGENT_REVISION \
--assistant-revision $ASSISTANT_REVISION
- name: Save presigned URLs file to artifact
if: ${{ inputs.dev == true }}
-1
View File
@@ -1 +0,0 @@
test merge for test/5538 - 20260505T224644Z
+21 -7
View File
@@ -1,19 +1,34 @@
# Change Log
All notable changes to this project will be documented in this file.
## [5.1.0]
### Added
- None
### Changed
- None
### Fixed
- None
### Deleted
- None
## [5.0.0]
### Added
- Add revert option into bumper workflow ([#2330](https://github.com/wazuh/wazuh-docker/pull/2330))
- Add checks for artifact_urls.yaml download ([#2315](https://github.com/wazuh/wazuh-docker/pull/2315))
- Add set_as_main option ([#2293](https://github.com/wazuh/wazuh-docker/pull/2293))
- None
### Changed
- Image build process update ([#2358](https://github.com/wazuh/wazuh-docker/pull/2358))
- Add new path on artifact_urls file ([#2344](https://github.com/wazuh/wazuh-docker/pull/2344))
- Presigned URLs generation enhancement ([#2346](https://github.com/wazuh/wazuh-docker/pull/2346))
- Add checks for artifact_urls.yaml download ([#2315](https://github.com/wazuh/wazuh-docker/pull/2315))
- Add set_as_main option ([#2293](https://github.com/wazuh/wazuh-docker/pull/2293))
- Adapt bumper workflows to change main branch ([#2294](https://github.com/wazuh/wazuh-docker/pull/2294))
- Delete all API user and password references and Wazuh agent references ([#2289](https://github.com/wazuh/wazuh-docker/pull/2289))
- Create certificate directory with default user and group ([#2287](https://github.com/wazuh/wazuh-docker/pull/2287))
@@ -52,7 +67,6 @@ All notable changes to this project will be documented in this file.
### Fixed
- Delete setcap command on deprecated file ([#2345](https://github.com/wazuh/wazuh-docker/pull/2345))
- Modify the choice of a correct tag ([#2313](https://github.com/wazuh/wazuh-docker/pull/2313))
- Artifact URL download fix ([#2306](https://github.com/wazuh/wazuh-docker/pull/2306))
- Change API query method. ([#2275](https://github.com/wazuh/wazuh-docker/pull/2275))
+2 -2
View File
@@ -1,4 +1,4 @@
{
"version": "5.0.0",
"stage": "beta1"
"version": "5.1.0",
"stage": "alpha0"
}
+104 -51
View File
@@ -47,8 +47,6 @@ build() {
WAZUH_STAGE=$(jq -r '.stage' ../VERSION.json)
# ARTIFACT_URLS_FILE: The name of the artifact URLs file.
ARTIFACT_URLS_FILE="artifact_urls.yaml"
# ARTIFACT_URLS_DIR: The name of the artifact URLs directory.
ARTIFACT_URLS_DIR="artifact-urls"
# Check if the artifact file already exists to prevent redundant downloads
if [[ -f "$ARTIFACT_URLS_FILE" ]]; then
@@ -94,7 +92,7 @@ build() {
# Final download using dynamic variables based on the release type.
# Pattern: server / stage / major_version.x / filename
FULL_URL="https://${PACKAGE_URL}/${RELEASE_STAGE}/${WAZUH_MAJOR_VERSION}.x/${ARTIFACT_URLS_DIR}/${ARTIFACT_URLS_DOWNLOAD}"
FULL_URL="https://${PACKAGE_URL}/${RELEASE_STAGE}/${WAZUH_MAJOR_VERSION}.x/${ARTIFACT_URLS_DOWNLOAD}"
echo "Attempting to download: $FULL_URL"
curl -fsSL -o "$ARTIFACT_URLS_FILE" "$FULL_URL" || {
echo "Error: Failed to download artifact URLs from $FULL_URL" >&2
@@ -166,23 +164,52 @@ build() {
fi
# Write the global .env file used by deployment compose files.
# IMAGE_TAG here reflects a non-dev, non-per-component tag for reference.
local base_tag="${WAZUH_IMAGE_VERSION}${WAZUH_DEV_STAGE:+-${WAZUH_DEV_STAGE,,}}"
# Function to get component-specific commit reference
get_component_commit() {
local component=$1
case "${component}" in
wazuh-indexer)
echo "${INDEXER_COMMIT}"
;;
wazuh-manager)
echo "${MANAGER_COMMIT}"
;;
wazuh-dashboard)
echo "${DASHBOARD_COMMIT}"
;;
wazuh-agent)
echo "${AGENT_COMMIT}"
;;
*)
echo ""
;;
esac
}
# Global env file (without IMAGE_TAG - will be component-specific)
echo WAZUH_VERSION=$WAZUH_IMAGE_VERSION > ../.env
echo WAZUH_IMAGE_VERSION=$WAZUH_IMAGE_VERSION >> ../.env
echo WAZUH_REGISTRY=$WAZUH_REGISTRY >> ../.env
echo IMAGE_TAG=${base_tag} >> ../.env
set -a
source ../.env
source ./artifacts_env.txt
set +a
# Validate component if a specific one was requested.
if [ -n "${WAZUH_COMPONENT}" ]; then
# Define all available components
local all_components=("wazuh-indexer" "wazuh-manager" "wazuh-dashboard" "wazuh-agent")
local components_to_build=()
# Determine which components to build
if [ -z "${WAZUH_COMPONENT}" ]; then
echo "No component specified. Building all components..."
components_to_build=("${all_components[@]}")
else
# Validate component
case "${WAZUH_COMPONENT}" in
wazuh-indexer|wazuh-manager|wazuh-dashboard|wazuh-agent) ;;
wazuh-indexer|wazuh-manager|wazuh-dashboard|wazuh-agent)
components_to_build=("${WAZUH_COMPONENT}")
;;
*)
echo "Error: Unknown component '${WAZUH_COMPONENT}'" >&2
clean 1
@@ -190,51 +217,77 @@ build() {
esac
fi
# Generate per-component image tags.
# The commit suffix is only appended when --dev is passed. This ensures:
# dev=false, tag=5.0.0 → 5.0.0
# dev=false, tag=5.0.0-beta1 → 5.0.0-beta1
# dev=true, tag=5.0.0 → 5.0.0-latest
# dev=true, tag=5.0.0-beta1 → 5.0.0-beta1-latest
make_tag() {
local commit=$1
if [ -n "${IS_DEV_BUILD}" ]; then
echo "${WAZUH_IMAGE_VERSION}${WAZUH_DEV_STAGE:+-${WAZUH_DEV_STAGE,,}}-${commit}"
else
echo "${base_tag}"
fi
}
export WAZUH_VERSION="$WAZUH_IMAGE_VERSION"
export MULTIARCH="${MULTIARCH}"
export INDEXER_TAG=$(make_tag "${INDEXER_COMMIT:-latest}")
export MANAGER_TAG=$(make_tag "${MANAGER_COMMIT:-latest}")
export DASHBOARD_TAG=$(make_tag "${DASHBOARD_COMMIT:-latest}")
export AGENT_TAG=$(make_tag "${AGENT_COMMIT:-latest}")
echo "Image tags:"
echo " wazuh-indexer: ${WAZUH_REGISTRY}/wazuh/wazuh-indexer:${INDEXER_TAG}"
echo " wazuh-manager: ${WAZUH_REGISTRY}/wazuh/wazuh-manager:${MANAGER_TAG}"
echo " wazuh-dashboard: ${WAZUH_REGISTRY}/wazuh/wazuh-dashboard:${DASHBOARD_TAG}"
echo " wazuh-agent: ${WAZUH_REGISTRY}/wazuh/wazuh-agent:${AGENT_TAG}"
# Bake options: --push for multi-arch (can't load multi-platform locally),
# --load for single-arch (stores image in local Docker daemon).
local bake_opts="--no-cache"
# Determine build command and base options
if [ "${MULTIARCH}" ]; then
bake_opts="${bake_opts} --push"
build_cmd="docker buildx build --platform linux/amd64,linux/arm64 --push --no-cache"
else
bake_opts="${bake_opts} --load"
build_cmd="docker build --no-cache"
fi
# Build a specific component or the full default group (all 4 in parallel).
if [ -z "${WAZUH_COMPONENT}" ]; then
echo "Building all components in parallel..."
docker buildx bake ${bake_opts} -f docker-bake.hcl || clean 1
else
echo "Building ${WAZUH_COMPONENT}..."
docker buildx bake ${bake_opts} -f docker-bake.hcl "${WAZUH_COMPONENT}" || clean 1
fi
# Build each component
for component in "${components_to_build[@]}"; do
echo "Building ${component} image..."
# Get component-specific commit reference
COMPONENT_COMMIT=$(get_component_commit "${component}")
# Generate component-specific IMAGE_TAG.
# The commit suffix is only appended when --dev was passed, which maps
# directly to inputs.dev=true in the workflow. This ensures:
# dev=false, tag=5.0.0 → 5.0.0
# dev=false, tag=5.0.0-beta1 → 5.0.0-beta1
# dev=true, tag=5.0.0 → 5.0.0-latest
# dev=true, tag=5.0.0-beta1 → 5.0.0-beta1-latest
if [ -n "${IS_DEV_BUILD}" ]; then
IMAGE_TAG="${WAZUH_IMAGE_VERSION}${WAZUH_DEV_STAGE:+-${WAZUH_DEV_STAGE,,}}-${COMPONENT_COMMIT}"
else
IMAGE_TAG="${WAZUH_IMAGE_VERSION}${WAZUH_DEV_STAGE:+-${WAZUH_DEV_STAGE,,}}"
fi
echo "Using IMAGE_TAG: ${IMAGE_TAG} for ${component}"
export IMAGE_TAG="$IMAGE_TAG"
# Build common args (used by all components)
build_args=(
-t "${WAZUH_REGISTRY}/wazuh/${component}:${IMAGE_TAG}"
--build-arg WAZUH_VERSION="${WAZUH_IMAGE_VERSION}"
)
# Add component-specific args
case "${component}" in
wazuh-indexer)
build_args+=(
--build-arg wazuh_indexer_x86_64_rpm="${wazuh_indexer_x86_64_rpm}"
--build-arg wazuh_indexer_aarch64_rpm="${wazuh_indexer_aarch64_rpm}"
--build-arg wazuh_certs_tool="${wazuh_certs_tool}"
--build-arg wazuh_config_yml="${wazuh_config_yml}"
)
;;
wazuh-manager)
build_args+=(
--build-arg wazuh_manager_x86_64_rpm="${wazuh_manager_x86_64_rpm}"
--build-arg wazuh_manager_aarch64_rpm="${wazuh_manager_aarch64_rpm}"
)
;;
wazuh-dashboard)
build_args+=(
--build-arg wazuh_dashboard_x86_64_rpm="${wazuh_dashboard_x86_64_rpm}"
--build-arg wazuh_dashboard_aarch64_rpm="${wazuh_dashboard_aarch64_rpm}"
--build-arg wazuh_certs_tool="${wazuh_certs_tool}"
--build-arg wazuh_config_yml="${wazuh_config_yml}"
)
;;
wazuh-agent)
build_args+=(
--build-arg wazuh_agent_x86_64_rpm="${wazuh_agent_x86_64_rpm}"
--build-arg wazuh_agent_aarch64_rpm="${wazuh_agent_aarch64_rpm}"
)
;;
esac
# Execute build
$build_cmd "${build_args[@]}" ${component}/ || clean 1
echo "${component} image built successfully!"
done
echo ""
echo "Image build process completed!"
+98
View File
@@ -0,0 +1,98 @@
# Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2)
services:
wazuh.manager:
build:
context: wazuh-manager/
args:
WAZUH_VERSION: ${WAZUH_VERSION}
wazuh_manager_x86_64_rpm: ${wazuh_manager_x86_64_rpm}
wazuh_manager_aarch64_rpm: ${wazuh_manager_aarch64_rpm}
wazuh_certs_tool: ${wazuh_certs_tool}
wazuh_config_yml: ${wazuh_config_yml}
image: ${WAZUH_REGISTRY}/wazuh/wazuh-manager:${IMAGE_TAG}
hostname: wazuh.manager
restart: always
ports:
- "1514:1514"
- "1515:1515"
- "514:514/udp"
- "55000:55000"
environment:
- INDEXER_URL=https://wazuh.indexer:9200
- INDEXER_USERNAME=admin
- INDEXER_PASSWORD=admin
volumes:
- wazuh_api_configuration:/var/wazuh-manager/api/configuration
- wazuh_etc:/var/wazuh-manager/etc
- wazuh_logs:/var/wazuh-manager/logs
- wazuh_queue:/var/wazuh-manager/queue
- wazuh_var_multigroups:/var/wazuh-manager/var/multigroups
wazuh.agent:
build:
context: wazuh-agent/
args:
WAZUH_VERSION: ${WAZUH_VERSION}
wazuh_agent_x86_64_rpm: ${wazuh_agent_x86_64_rpm}
wazuh_agent_aarch64_rpm: ${wazuh_agent_aarch64_rpm}
image: ${WAZUH_REGISTRY}/wazuh/wazuh-agent:${IMAGE_TAG}
hostname: wazuh.agent
restart: always
wazuh.indexer:
build:
context: wazuh-indexer/
args:
WAZUH_VERSION: ${WAZUH_VERSION}
wazuh_indexer_x86_64_rpm: ${wazuh_indexer_x86_64_rpm}
wazuh_indexer_aarch64_rpm: ${wazuh_indexer_aarch64_rpm}
wazuh_certs_tool: ${wazuh_certs_tool}
wazuh_config_yml: ${wazuh_config_yml}
image: ${WAZUH_REGISTRY}/wazuh/wazuh-indexer:${IMAGE_TAG}
hostname: wazuh.indexer
restart: always
ports:
- "9200:9200"
environment:
- "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
wazuh.dashboard:
build:
context: wazuh-dashboard/
args:
WAZUH_VERSION: ${WAZUH_VERSION}
wazuh_dashboard_x86_64_rpm: ${wazuh_dashboard_x86_64_rpm}
wazuh_dashboard_aarch64_rpm: ${wazuh_dashboard_aarch64_rpm}
wazuh_certs_tool: ${wazuh_certs_tool}
wazuh_config_yml: ${wazuh_config_yml}
image: ${WAZUH_REGISTRY}/wazuh/wazuh-dashboard:${IMAGE_TAG}
hostname: wazuh.dashboard
restart: always
ports:
- 443:443
environment:
- INDEXER_USERNAME=admin
- INDEXER_PASSWORD=admin
- SERVER_SSL_ENABLED=false
- WAZUH_API_URL=https://wazuh.manager
depends_on:
- wazuh.indexer
links:
- wazuh.indexer:wazuh.indexer
- wazuh.manager:wazuh.manager
volumes:
wazuh_api_configuration:
wazuh_etc:
wazuh_logs:
wazuh_queue:
wazuh_var_multigroups:
wazuh_active_response:
-110
View File
@@ -1,110 +0,0 @@
# Wazuh Docker Copyright (C) 2017, Wazuh Inc. (License GPLv2)
#
# Docker Buildx Bake file.
# Builds all Wazuh component images in parallel.
#
# Usage:
# docker buildx bake # build all (local, single-arch)
# docker buildx bake wazuh-manager # build one component
# docker buildx bake --push # push to registry after build
#
# Variables are read automatically from the environment (see build-images.sh).
# ── Global variables ──────────────────────────────────────────────────────────
variable "WAZUH_VERSION" { default = "5.0.0" }
variable "WAZUH_REGISTRY" { default = "docker.io" }
# Set IMAGE_TAG externally to override; defaults to WAZUH_VERSION.
variable "IMAGE_TAG" { default = WAZUH_VERSION }
# MULTIARCH: set to a non-empty value to build linux/amd64 + linux/arm64.
variable "MULTIARCH" { default = "" }
# Per-component tags — all default to IMAGE_TAG.
# In dev builds the shell script sets each one independently to append the
# per-component commit ref (e.g. MANAGER_TAG=5.0.0-beta1-abc1234).
variable "INDEXER_TAG" { default = IMAGE_TAG }
variable "MANAGER_TAG" { default = IMAGE_TAG }
variable "DASHBOARD_TAG" { default = IMAGE_TAG }
variable "AGENT_TAG" { default = IMAGE_TAG }
# ── Artifact URL variables ────────────────────────────────────────────────────
# Populated by build-images.sh from artifacts_env.txt (sourced into env).
variable "wazuh_indexer_x86_64_rpm" { default = "" }
variable "wazuh_indexer_aarch64_rpm" { default = "" }
variable "wazuh_manager_x86_64_rpm" { default = "" }
variable "wazuh_manager_aarch64_rpm" { default = "" }
variable "wazuh_dashboard_x86_64_rpm" { default = "" }
variable "wazuh_dashboard_aarch64_rpm" { default = "" }
variable "wazuh_agent_x86_64_rpm" { default = "" }
variable "wazuh_agent_aarch64_rpm" { default = "" }
variable "wazuh_certs_tool" { default = "" }
variable "wazuh_config_yml" { default = "" }
# ── Default group: builds all components ─────────────────────────────────────
group "default" {
targets = ["wazuh-indexer", "wazuh-manager", "wazuh-dashboard", "wazuh-agent"]
}
# ── Shared base target ────────────────────────────────────────────────────────
# All component targets inherit from here. Not built directly.
target "_common" {
# MULTIARCH=true → build linux/amd64 + linux/arm64 (requires --push, no --load for multi-platform)
# MULTIARCH unset → null means "native platform of the build host" (amd64 on x86, arm64 on ARM)
platforms = MULTIARCH != "" ? ["linux/amd64", "linux/arm64"] : null
args = {
WAZUH_VERSION = WAZUH_VERSION
}
}
# ── Component targets ─────────────────────────────────────────────────────────
target "wazuh-indexer" {
inherits = ["_common"]
context = "wazuh-indexer/"
tags = ["${WAZUH_REGISTRY}/wazuh/wazuh-indexer:${INDEXER_TAG}"]
args = {
wazuh_indexer_x86_64_rpm = wazuh_indexer_x86_64_rpm
wazuh_indexer_aarch64_rpm = wazuh_indexer_aarch64_rpm
wazuh_certs_tool = wazuh_certs_tool
wazuh_config_yml = wazuh_config_yml
}
}
target "wazuh-manager" {
inherits = ["_common"]
context = "wazuh-manager/"
tags = ["${WAZUH_REGISTRY}/wazuh/wazuh-manager:${MANAGER_TAG}"]
args = {
wazuh_manager_x86_64_rpm = wazuh_manager_x86_64_rpm
wazuh_manager_aarch64_rpm = wazuh_manager_aarch64_rpm
wazuh_certs_tool = wazuh_certs_tool
wazuh_config_yml = wazuh_config_yml
}
}
target "wazuh-dashboard" {
inherits = ["_common"]
context = "wazuh-dashboard/"
tags = ["${WAZUH_REGISTRY}/wazuh/wazuh-dashboard:${DASHBOARD_TAG}"]
args = {
wazuh_dashboard_x86_64_rpm = wazuh_dashboard_x86_64_rpm
wazuh_dashboard_aarch64_rpm = wazuh_dashboard_aarch64_rpm
wazuh_certs_tool = wazuh_certs_tool
wazuh_config_yml = wazuh_config_yml
}
}
target "wazuh-agent" {
inherits = ["_common"]
context = "wazuh-agent/"
tags = ["${WAZUH_REGISTRY}/wazuh/wazuh-agent:${AGENT_TAG}"]
args = {
wazuh_agent_x86_64_rpm = wazuh_agent_x86_64_rpm
wazuh_agent_aarch64_rpm = wazuh_agent_aarch64_rpm
}
}
+13 -46
View File
@@ -1,13 +1,10 @@
# Wazuh Docker Copyright (C) 2017, Wazuh Inc. (License GPLv2)
FROM amazonlinux:2023
################################################################################
# Build stage 0 (builder):
# Install Wazuh Agent RPM and download tini (static PID-1 init shim).
################################################################################
FROM amazonlinux:2023 AS builder
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
ARG WAZUH_VERSION
ARG TINI_VERSION="v0.19.0"
ARG S6_VERSION="v2.2.0.3"
ARG WAZUH_MANAGER='CHANGE_MANAGER_IP'
ARG WAZUH_REGISTRATION_SERVER='CHANGE_ENROLL_IP'
ARG WAZUH_AGENT_NAME='CHANGE_AGENT_NAME'
@@ -19,49 +16,19 @@ RUN RPM_ARCH="x86_64" && \
if [ "${TARGETARCH}" = "arm64" ]; then RPM_ARCH="aarch64"; fi && \
URL_VAR="wazuh_agent_${RPM_ARCH}_rpm" && \
agent_url="${!URL_VAR}" && \
dnf install curl-minimal tar gzip procps shadow-utils -y && \
dnf install curl-minimal tar gzip procps -y &&\
curl -o /wazuh-agent.rpm "${agent_url}" && \
dnf install /wazuh-agent.rpm -y && \
rm -rf /wazuh-agent.rpm && \
dnf clean all && \
sed -i '/<authorization_pass_path>/d' /var/ossec/etc/ossec.conf
# Download tini static binary (no external library dependencies)
RUN curl --fail --silent -L \
https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-static-${TARGETARCH} \
-o /usr/local/bin/tini && \
chmod +x /usr/local/bin/tini
################################################################################
# Build stage 1 (the actual Wazuh Agent image):
# Copy Wazuh Agent and tini from builder. Install only runtime dependencies.
################################################################################
FROM amazonlinux:2023
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
# Install only runtime dependencies
RUN dnf install procps shadow-utils -y && \
dnf clean all && \
getent group wazuh || groupadd -r -g 999 wazuh && \
getent passwd wazuh || useradd --system \
--uid 999 \
--no-create-home \
--home-dir /var/ossec \
--gid wazuh \
--shell /sbin/nologin \
wazuh
# Copy Wazuh Agent installation from builder
COPY --from=builder /var/ossec /var/ossec
# Copy tini static binary
COPY --from=builder /usr/local/bin/tini /usr/local/bin/tini
# Copy entrypoint and init scripts
COPY config/entrypoint.sh /entrypoint.sh
sed -i '/<authorization_pass_path>/d' /var/ossec/etc/ossec.conf && \
S6_ARCH="amd64" && \
if [ "${TARGETARCH}" = "arm64" ]; then S6_ARCH="aarch64"; fi && \
curl --fail --silent -L https://github.com/just-containers/s6-overlay/releases/download/${S6_VERSION}/s6-overlay-${S6_ARCH}.tar.gz \
-o /tmp/s6-overlay-${S6_ARCH}.tar.gz && \
tar xzf /tmp/s6-overlay-${S6_ARCH}.tar.gz -C / --exclude="./bin" && \
tar xzf /tmp/s6-overlay-${S6_ARCH}.tar.gz -C /usr ./bin && \
rm /tmp/s6-overlay-${S6_ARCH}.tar.gz
COPY config/etc/ /etc/
RUN chmod 755 /entrypoint.sh
ENTRYPOINT ["/usr/local/bin/tini", "--", "/entrypoint.sh"]
ENTRYPOINT [ "/init" ]
@@ -1,22 +0,0 @@
#!/bin/bash
# Wazuh Docker Copyright (C) 2017, Wazuh Inc. (License GPLv2)
# Run initialization and configuration
bash /etc/cont-init.d/0-wazuh-init
# Start Wazuh Agent (may log warnings if manager address is not configured)
bash /etc/cont-init.d/1-agent
# Tail the main log to stdout so Docker captures it
tail -F /var/ossec/logs/ossec.log &
TAIL_PID=$!
# Graceful shutdown: stop Wazuh and exit cleanly on SIGTERM/SIGINT
_stop() {
echo "Stopping Wazuh Agent..."
/var/ossec/bin/wazuh-control stop 2>/dev/null || true
kill "${TAIL_PID}" 2>/dev/null || true
}
trap _stop SIGTERM SIGINT SIGQUIT
wait "${TAIL_PID}"
@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/with-contenv bash
# Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2)
WAZUH_INSTALL_PATH=/var/ossec
@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/with-contenv bash
##############################################################################
# Migration sequence
@@ -1,4 +1,4 @@
#!/bin/sh
#!/usr/bin/with-contenv sh
# dumping ossec.log to standard output
exec tail -F /var/ossec/logs/ossec.log
@@ -24,6 +24,7 @@ RUN mkdir -p $INSTALL_DIR/data/wazuh && chmod -R 775 $INSTALL_DIR/data/wazuh
RUN mkdir -p $INSTALL_DIR/data/wazuh/config && chmod -R 775 $INSTALL_DIR/data/wazuh/config
RUN mkdir -p $INSTALL_DIR/data/wazuh/logs && chmod -R 775 $INSTALL_DIR/data/wazuh/logs
RUN setcap 'cap_net_bind_service=-ep' /usr/share/wazuh-dashboard/node/bin/node
RUN setcap 'cap_net_bind_service=-ep' /usr/share/wazuh-dashboard/node/fallback/bin/node
################################################################################
# Build stage 1 (the current Wazuh dashboard image):
@@ -62,13 +63,13 @@ RUN yum install shadow-utils -y && \
yum clean all && \
getent group $GROUP || groupadd -r -g 1000 $GROUP && \
useradd --system \
--uid 1000 \
--no-create-home \
--home-dir $INSTALL_DIR \
--gid $GROUP \
--shell /sbin/nologin \
--comment "$USER user" \
$USER && \
--uid 1000 \
--no-create-home \
--home-dir $INSTALL_DIR \
--gid $GROUP \
--shell /sbin/nologin \
--comment "$USER user" \
$USER && \
chmod 700 /entrypoint.sh && \
chmod 700 /wazuh_dashboard_config.sh && \
mkdir -p $INSTALL_DIR && \
+25 -58
View File
@@ -1,86 +1,53 @@
# Wazuh Docker Copyright (C) 2017, Wazuh Inc. (License GPLv2)
FROM amazonlinux:2023
################################################################################
# Build stage 0 (builder):
# Install Wazuh Manager RPM, configure directories, prepare permanent data,
# and download tini (static PID-1 init shim).
################################################################################
FROM amazonlinux:2023 AS builder
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
ARG WAZUH_VERSION
ARG TINI_VERSION="v0.19.0"
ARG S6_VERSION="v2.2.0.3"
ARG TARGETARCH
ARG wazuh_manager_x86_64_rpm
ARG wazuh_manager_aarch64_rpm
# Prepare permanent data config needed by permanent_data.sh at build time
COPY config/permanent_data.env config/permanent_data.sh /
RUN RPM_ARCH="x86_64" && \
if [ "${TARGETARCH}" = "arm64" ]; then RPM_ARCH="aarch64"; fi && \
URL_VAR="wazuh_manager_${RPM_ARCH}_rpm" && \
manager_url="${!URL_VAR}" && \
dnf install curl-minimal xz gnupg tar gzip openssl findutils procps shadow-utils -y && \
dnf install curl-minimal xz gnupg tar gzip openssl findutils procps -y &&\
dnf clean all && \
curl -o /wazuh-manager.rpm "${manager_url}" && \
dnf install /wazuh-manager.rpm -y && \
rm -rf /wazuh-manager.rpm && \
dnf clean all && \
# Set up required directories with correct ownership
mkdir -p /var/wazuh-manager/var/multigroups && \
S6_ARCH="amd64" && \
if [ "${TARGETARCH}" = "arm64" ]; then S6_ARCH="aarch64"; fi && \
curl --fail --silent -L https://github.com/just-containers/s6-overlay/releases/download/${S6_VERSION}/s6-overlay-${S6_ARCH}.tar.gz \
-o /tmp/s6-overlay-${S6_ARCH}.tar.gz && \
tar xzf /tmp/s6-overlay-${S6_ARCH}.tar.gz -C / --exclude="./bin" && \
tar xzf /tmp/s6-overlay-${S6_ARCH}.tar.gz -C /usr ./bin && \
rm /tmp/s6-overlay-${S6_ARCH}.tar.gz && \
rm -f /var/wazuh-manager/etc/sslmanager.key && \
rm -f /var/wazuh-manager/etc/sslmanager.cert
COPY config/etc/ /etc/
# Prepare permanent data
# Sync calls are due to https://github.com/docker/docker/issues/9547
COPY config/permanent_data.env config/permanent_data.sh /
#Make mount directories for keep permissions
RUN mkdir -p /var/wazuh-manager/var/multigroups && \
chown root:wazuh-manager /var/wazuh-manager/var/multigroups && \
chmod 770 /var/wazuh-manager/var/multigroups && \
mkdir -p /var/wazuh-manager/etc/certs && \
chown wazuh-manager:wazuh-manager /var/wazuh-manager/etc/certs && \
chmod 500 /var/wazuh-manager/etc/certs && \
rm -f /var/wazuh-manager/etc/sslmanager.key && \
rm -f /var/wazuh-manager/etc/sslmanager.cert
# Prepare permanent data snapshot (sync calls: https://github.com/docker/docker/issues/9547)
RUN chmod 755 /permanent_data.sh && \
chmod 755 /permanent_data.sh && \
sync && /permanent_data.sh && \
sync && rm /permanent_data.sh
# Download tini static binary (no external library dependencies)
RUN curl --fail --silent -L \
https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-static-${TARGETARCH} \
-o /usr/local/bin/tini && \
chmod +x /usr/local/bin/tini
################################################################################
# Build stage 1 (the actual Wazuh Manager image):
# Copy Wazuh Manager and tini from builder. Install only runtime dependencies.
################################################################################
FROM amazonlinux:2023
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
# Install only runtime dependencies (no curl, tar, gzip, xz, or full dnf stack)
RUN dnf install openssl findutils procps shadow-utils -y && \
dnf clean all && \
getent group wazuh-manager || groupadd -r -g 999 wazuh-manager && \
getent passwd wazuh-manager || useradd --system \
--uid 999 \
--no-create-home \
--home-dir /var/wazuh-manager \
--gid wazuh-manager \
--shell /sbin/nologin \
wazuh-manager
# Copy Wazuh Manager installation (includes permanent data snapshot)
COPY --from=builder /var/wazuh-manager /var/wazuh-manager
# Copy tini static binary
COPY --from=builder /usr/local/bin/tini /usr/local/bin/tini
# Copy entrypoint, init scripts and runtime config
COPY config/entrypoint.sh /entrypoint.sh
COPY config/etc/ /etc/
COPY config/permanent_data.env /
RUN chmod 755 /entrypoint.sh
# Services ports
EXPOSE 55000/tcp 1514/tcp 1515/tcp 514/udp 1516/tcp
ENTRYPOINT ["/usr/local/bin/tini", "--", "/entrypoint.sh"]
ENTRYPOINT [ "/init" ]
@@ -1,22 +0,0 @@
#!/bin/bash
# Wazuh Docker Copyright (C) 2017, Wazuh Inc. (License GPLv2)
# Run initialization and configuration
bash /etc/cont-init.d/0-wazuh-init
# Start Wazuh Manager (may log warnings in environments without certs)
bash /etc/cont-init.d/1-manager
# Tail the main log to stdout so Docker captures it
tail -F /var/wazuh-manager/logs/wazuh-manager.log &
TAIL_PID=$!
# Graceful shutdown: stop Wazuh and exit cleanly on SIGTERM/SIGINT
_stop() {
echo "Stopping Wazuh Manager..."
/var/wazuh-manager/bin/wazuh-manager-control stop 2>/dev/null || true
kill "${TAIL_PID}" 2>/dev/null || true
}
trap _stop SIGTERM SIGINT SIGQUIT
wait "${TAIL_PID}"
@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/with-contenv bash
# Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2)
# Variables
@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/with-contenv bash
##############################################################################
# Migration sequence
@@ -1,4 +1,4 @@
#!/bin/sh
#!/usr/bin/with-contenv sh
# dumping wazuh-manager.log to standard output
exec tail -F /var/wazuh-manager/logs/wazuh-manager.log
+1 -1
View File
@@ -28,7 +28,7 @@ The folder `wazuh-agent` contains a README explaining how to run a container wit
├── build-docker-images
│   ├── build-images.sh
│   ├── docker-bake.hcl
│   ├── build-images.yml
│   ├── README.md
│   ├── wazuh-agent
│   │   ├── config
+1 -1
View File
@@ -38,7 +38,7 @@ The Procedure_push_docker_images.yml workflow builds and pushes multi-architectu
2. **Multi-architecture Build**:
- Uses Docker Buildx with QEMU for cross-platform builds
- Builds for `linux/amd64` and `linux/arm64`
- Leverages `docker-bake.hcl` for parallel multi-arch build configuration
- Leverages `build-images.yml` for build configuration
3. **Image Publishing**:
- Tags images appropriately based on mode