mirror of
https://github.com/wazuh/wazuh-docker.git
synced 2025-11-04 22:13:31 +00:00
Merge pull request #1025 from wazuh/enhancement/1016-allow-branch-parameters-on-build-imagessh-to4.6.0
Updated build-images.sh script to support build parameters
This commit is contained in:
@@ -9,3 +9,24 @@ $ build-docker-images/build-images.sh
|
|||||||
```
|
```
|
||||||
|
|
||||||
This script initializes the environment variables needed to build each of the images.
|
This script initializes the environment variables needed to build each of the images.
|
||||||
|
|
||||||
|
The script allows you to build images from other versions of Wazuh, to do this you must use the -v or --version argument:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ build-docker-images/build-images.sh -v 4.5.2
|
||||||
|
```
|
||||||
|
|
||||||
|
To get all the available script options use the -h or --help option:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ build-docker-images/build-images.sh -h
|
||||||
|
|
||||||
|
Usage: build-docker-images/build-images.sh [OPTIONS]
|
||||||
|
|
||||||
|
-d, --dev <ref> [Optional] Set the development stage you want to build, example rc1 or beta1, not used by default.
|
||||||
|
-f, --filebeat-module <ref> [Optional] Set Filebeat module version. By default 0.2.
|
||||||
|
-r, --revision <rev> [Optional] Package revision. By default 1
|
||||||
|
-v, --version <ver> [Optional] Set the Wazuh version should be builded. By default, 4.6.0.
|
||||||
|
-h, --help Show this help.
|
||||||
|
|
||||||
|
```
|
||||||
@@ -1,11 +1,140 @@
|
|||||||
WAZUH_IMAGE_VERSION=4.6.0
|
#!/bin/bash
|
||||||
WAZUH_VERSION=$(echo $WAZUH_IMAGE_VERSION | sed -e 's/\.//g')
|
|
||||||
WAZUH_TAG_REVISION=1
|
|
||||||
WAZUH_CURRENT_VERSION=$(curl --silent https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '\"tag_name\":' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 2- | sed -e 's/\.//g')
|
|
||||||
IMAGE_VERSION=${WAZUH_IMAGE_VERSION}
|
|
||||||
|
|
||||||
echo WAZUH_VERSION=$WAZUH_IMAGE_VERSION > .env
|
# Wazuh package generator
|
||||||
echo WAZUH_IMAGE_VERSION=$IMAGE_VERSION >> .env
|
# Copyright (C) 2023, Wazuh Inc.
|
||||||
echo WAZUH_TAG_REVISION=$WAZUH_TAG_REVISION >> .env
|
#
|
||||||
|
# This program is a free software; you can redistribute it
|
||||||
|
# and/or modify it under the terms of the GNU General Public
|
||||||
|
# License (version 2) as published by the FSF - Free Software
|
||||||
|
# Foundation.
|
||||||
|
|
||||||
docker-compose -f build-docker-images/build-images.yml --env-file .env build --no-cache
|
WAZUH_IMAGE_VERSION="4.6.0"
|
||||||
|
WAZUH_TAG_REVISION="1"
|
||||||
|
WAZUH_DEV_STAGE=""
|
||||||
|
FILEBEAT_MODULE_VERSION="0.2"
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
trap ctrl_c INT
|
||||||
|
|
||||||
|
clean() {
|
||||||
|
exit_code=$1
|
||||||
|
|
||||||
|
exit ${exit_code}
|
||||||
|
}
|
||||||
|
|
||||||
|
ctrl_c() {
|
||||||
|
clean 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
build() {
|
||||||
|
|
||||||
|
WAZUH_VERSION="$(echo $WAZUH_IMAGE_VERSION | sed -e 's/\.//g')"
|
||||||
|
FILEBEAT_TEMPLATE_BRANCH="${WAZUH_IMAGE_VERSION}"
|
||||||
|
WAZUH_FILEBEAT_MODULE="wazuh-filebeat-${FILEBEAT_MODULE_VERSION}.tar.gz"
|
||||||
|
WAZUH_UI_REVISION="${WAZUH_TAG_REVISION}"
|
||||||
|
|
||||||
|
if [ "${WAZUH_DEV_STAGE}" ];then
|
||||||
|
FILEBEAT_TEMPLATE_BRANCH="v${FILEBEAT_TEMPLATE_BRANCH}-${WAZUH_DEV_STAGE,,}"
|
||||||
|
if ! curl --output /dev/null --silent --head --fail "https://github.com/wazuh/wazuh/tree/${FILEBEAT_TEMPLATE_BRANCH}"; then
|
||||||
|
echo "The indicated branch does not exist in the wazuh/wazuh repository: ${FILEBEAT_TEMPLATE_BRANCH}"
|
||||||
|
clean 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if curl --output /dev/null --silent --head --fail "https://github.com/wazuh/wazuh/tree/${FILEBEAT_TEMPLATE_BRANCH}"; then
|
||||||
|
FILEBEAT_TEMPLATE_BRANCH="${FILEBEAT_TEMPLATE_BRANCH}"
|
||||||
|
elif curl --output /dev/null --silent --head --fail "https://github.com/wazuh/wazuh/tree/v${FILEBEAT_TEMPLATE_BRANCH}"; then
|
||||||
|
FILEBEAT_TEMPLATE_BRANCH="v${FILEBEAT_TEMPLATE_BRANCH}"
|
||||||
|
else
|
||||||
|
WAZUH_MASTER_VERSION="$(curl -s https://raw.githubusercontent.com/wazuh/wazuh/master/src/VERSION | sed -e 's/v//g')"
|
||||||
|
if [ "${FILEBEAT_TEMPLATE_BRANCH}" == "${WAZUH_MASTER_VERSION}" ]; then
|
||||||
|
FILEBEAT_TEMPLATE_BRANCH="master"
|
||||||
|
else
|
||||||
|
echo "The indicated branch does not exist in the wazuh/wazuh repository: ${FILEBEAT_TEMPLATE_BRANCH}"
|
||||||
|
clean 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo WAZUH_VERSION=$WAZUH_IMAGE_VERSION > .env
|
||||||
|
echo WAZUH_IMAGE_VERSION=$WAZUH_IMAGE_VERSION >> .env
|
||||||
|
echo WAZUH_TAG_REVISION=$WAZUH_TAG_REVISION >> .env
|
||||||
|
echo FILEBEAT_TEMPLATE_BRANCH=$FILEBEAT_TEMPLATE_BRANCH >> .env
|
||||||
|
echo WAZUH_FILEBEAT_MODULE=$WAZUH_FILEBEAT_MODULE >> .env
|
||||||
|
echo WAZUH_UI_REVISION=$WAZUH_UI_REVISION >> .env
|
||||||
|
|
||||||
|
docker-compose -f build-docker-images/build-images.yml --env-file .env build --no-cache
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
help() {
|
||||||
|
echo
|
||||||
|
echo "Usage: $0 [OPTIONS]"
|
||||||
|
echo
|
||||||
|
echo " -d, --dev <ref> [Optional] Set the development stage you want to build, example rc1 or beta1, not used by default."
|
||||||
|
echo " -f, --filebeat-module <ref> [Optional] Set Filebeat module version. By default ${FILEBEAT_MODULE_VERSION}."
|
||||||
|
echo " -r, --revision <rev> [Optional] Package revision. By default ${WAZUH_TAG_REVISION}"
|
||||||
|
echo " -v, --version <ver> [Optional] Set the Wazuh version should be builded. By default, ${WAZUH_IMAGE_VERSION}."
|
||||||
|
echo " -h, --help Show this help."
|
||||||
|
echo
|
||||||
|
exit $1
|
||||||
|
}
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
main() {
|
||||||
|
while [ -n "${1}" ]
|
||||||
|
do
|
||||||
|
case "${1}" in
|
||||||
|
"-h"|"--help")
|
||||||
|
help 0
|
||||||
|
;;
|
||||||
|
"-d"|"--dev")
|
||||||
|
if [ -n "${2}" ]; then
|
||||||
|
WAZUH_DEV_STAGE="${2}"
|
||||||
|
shift 2
|
||||||
|
else
|
||||||
|
help 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"-f"|"--filebeat-module")
|
||||||
|
if [ -n "${2}" ]; then
|
||||||
|
FILEBEAT_MODULE_VERSION="${2}"
|
||||||
|
shift 2
|
||||||
|
else
|
||||||
|
help 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"-r"|"--revision")
|
||||||
|
if [ -n "${2}" ]; then
|
||||||
|
WAZUH_TAG_REVISION="${2}"
|
||||||
|
shift 2
|
||||||
|
else
|
||||||
|
help 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"-v"|"--version")
|
||||||
|
if [ -n "$2" ]; then
|
||||||
|
WAZUH_IMAGE_VERSION="$2"
|
||||||
|
shift 2
|
||||||
|
else
|
||||||
|
help 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
help 1
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
build || clean 1
|
||||||
|
|
||||||
|
clean 0
|
||||||
|
}
|
||||||
|
|
||||||
|
main "$@"
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ services:
|
|||||||
args:
|
args:
|
||||||
WAZUH_VERSION: ${WAZUH_VERSION}
|
WAZUH_VERSION: ${WAZUH_VERSION}
|
||||||
WAZUH_TAG_REVISION: ${WAZUH_TAG_REVISION}
|
WAZUH_TAG_REVISION: ${WAZUH_TAG_REVISION}
|
||||||
|
FILEBEAT_TEMPLATE_BRANCH: ${FILEBEAT_TEMPLATE_BRANCH}
|
||||||
|
WAZUH_FILEBEAT_MODULE: ${WAZUH_FILEBEAT_MODULE}
|
||||||
image: wazuh/wazuh-manager:${WAZUH_IMAGE_VERSION}
|
image: wazuh/wazuh-manager:${WAZUH_IMAGE_VERSION}
|
||||||
hostname: wazuh.manager
|
hostname: wazuh.manager
|
||||||
restart: always
|
restart: always
|
||||||
@@ -61,6 +63,7 @@ services:
|
|||||||
args:
|
args:
|
||||||
WAZUH_VERSION: ${WAZUH_VERSION}
|
WAZUH_VERSION: ${WAZUH_VERSION}
|
||||||
WAZUH_TAG_REVISION: ${WAZUH_TAG_REVISION}
|
WAZUH_TAG_REVISION: ${WAZUH_TAG_REVISION}
|
||||||
|
WAZUH_UI_REVISION: ${WAZUH_UI_REVISION}
|
||||||
image: wazuh/wazuh-dashboard:${WAZUH_IMAGE_VERSION}
|
image: wazuh/wazuh-dashboard:${WAZUH_IMAGE_VERSION}
|
||||||
hostname: wazuh.dashboard
|
hostname: wazuh.dashboard
|
||||||
restart: always
|
restart: always
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ FROM ubuntu:focal AS builder
|
|||||||
ARG WAZUH_VERSION
|
ARG WAZUH_VERSION
|
||||||
ARG WAZUH_TAG_REVISION
|
ARG WAZUH_TAG_REVISION
|
||||||
ARG INSTALL_DIR=/usr/share/wazuh-dashboard
|
ARG INSTALL_DIR=/usr/share/wazuh-dashboard
|
||||||
ARG WAZUH_UI_REVISION=1
|
ARG WAZUH_UI_REVISION
|
||||||
|
|
||||||
# Update and install dependencies
|
# Update and install dependencies
|
||||||
RUN apt-get update && apt install curl libcap2-bin xz-utils -y
|
RUN apt-get update && apt install curl libcap2-bin xz-utils -y
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ RUN rm /bin/sh && ln -s /bin/bash /bin/sh
|
|||||||
|
|
||||||
ARG WAZUH_VERSION
|
ARG WAZUH_VERSION
|
||||||
ARG WAZUH_TAG_REVISION
|
ARG WAZUH_TAG_REVISION
|
||||||
ARG TEMPLATE_VERSION=v4.6.0
|
ARG FILEBEAT_TEMPLATE_BRANCH
|
||||||
ARG FILEBEAT_CHANNEL=filebeat-oss
|
ARG FILEBEAT_CHANNEL=filebeat-oss
|
||||||
ARG FILEBEAT_VERSION=7.10.2
|
ARG FILEBEAT_VERSION=7.10.2
|
||||||
ARG WAZUH_FILEBEAT_MODULE="wazuh-filebeat-0.2.tar.gz"
|
ARG WAZUH_FILEBEAT_MODULE
|
||||||
|
|
||||||
RUN apt-get update && apt install curl apt-transport-https lsb-release gnupg -y
|
RUN apt-get update && apt install curl apt-transport-https lsb-release gnupg -y
|
||||||
|
|
||||||
@@ -38,7 +38,7 @@ COPY config/filebeat.yml /etc/filebeat/
|
|||||||
|
|
||||||
RUN chmod go-w /etc/filebeat/filebeat.yml
|
RUN chmod go-w /etc/filebeat/filebeat.yml
|
||||||
|
|
||||||
ADD https://raw.githubusercontent.com/wazuh/wazuh/$TEMPLATE_VERSION/extensions/elasticsearch/7.x/wazuh-template.json /etc/filebeat
|
ADD https://raw.githubusercontent.com/wazuh/wazuh/$FILEBEAT_TEMPLATE_BRANCH/extensions/elasticsearch/7.x/wazuh-template.json /etc/filebeat
|
||||||
RUN chmod go-w /etc/filebeat/wazuh-template.json
|
RUN chmod go-w /etc/filebeat/wazuh-template.json
|
||||||
|
|
||||||
# Prepare permanent data
|
# Prepare permanent data
|
||||||
|
|||||||
Reference in New Issue
Block a user