diff --git a/.github/actions/prepare-bareos-app/entrypoint.sh b/.github/actions/prepare-bareos-app/entrypoint.sh index 9f1caa99..b973fbd4 100755 --- a/.github/actions/prepare-bareos-app/entrypoint.sh +++ b/.github/actions/prepare-bareos-app/entrypoint.sh @@ -2,8 +2,8 @@ BUILDX_VER='v0.5.1' latest_ubuntu='21' -latest_alpine='21' -latest_api='21' +latest_alpine='22' +latest_api='22' build_file="${GITHUB_WORKSPACE}/build/app_build.txt" tag_file="${GITHUB_WORKSPACE}/build/tag_build.txt" @@ -55,7 +55,6 @@ for file in $docker_files; do echo "${app} ${tag_build} ${version}" >> "$tag_file" if [ "${version}" == "$latest_ubuntu" ]; then echo "${app} ${tag_build} ubuntu" >> "$tag_file" - echo "${app} ${tag_build} latest" >> "$tag_file" fi fi if [ "${tag_build}" == 'nightly-ubuntu-pgsql' ]; then @@ -65,7 +64,6 @@ for file in $docker_files; do echo "${app} ${tag_build} ${version}" >> "$tag_file" if [ "${version}" == "$latest_ubuntu" ]; then echo "${app} ${tag_build} ubuntu" >> "$tag_file" - echo "${app} ${tag_build} latest" >> "$tag_file" fi fi fi @@ -81,10 +79,12 @@ for file in $docker_files; do echo "${app} ${tag_build} ${version}-alpine" >> "$tag_file" if [ "${version}" == "$latest_alpine" ]; then echo "${app} ${tag_build} alpine" >> "$tag_file" + echo "${app} ${tag_build} latest" >> "$tag_file" fi fi if [ "${app}" != 'director' ] && [ "${version}" == "$latest_alpine" ]; then echo "${app} ${tag_build} alpine" >> "$tag_file" + echo "${app} ${tag_build} latest" >> "$tag_file" fi if [ "${app}" == 'api' ] && [ "${version}" == "$latest_api" ]; then echo "${app} ${tag_build} ${version}" >> "$tag_file" diff --git a/api/22-alpine/Dockerfile b/api/22-alpine/Dockerfile new file mode 100644 index 00000000..782ab967 --- /dev/null +++ b/api/22-alpine/Dockerfile @@ -0,0 +1,32 @@ +FROM python:3.10-alpine + +LABEL maintainer="barcus@tou.nu" + +ARG BUILD_DATE +ARG NAME +ARG VCS_REF +ARG VERSION + +LABEL org.label-schema.schema-version="1.0" \ + org.label-schema.build-date=$BUILD_DATE \ + org.label-schema.name=$NAME \ + org.label-schema.vcs-ref=$VCS_REF \ + org.label-schema.vcs-url="https://github.com/barcus/bareos" \ + org.label-schema.version=$VERSION + +RUN pip install --no-cache-dir --upgrade pip==22.0.4 + +RUN adduser -D bareos +USER bareos +WORKDIR /home/bareos + +ENV PATH="/home/bareos/.local/bin:${PATH}" +RUN pip install --no-cache-dir "bareos-restapi>=22*,<23*" + +COPY --chown=bareos docker-entrypoint.sh /docker-entrypoint.sh +RUN chmod a+x /docker-entrypoint.sh + +EXPOSE 8000 + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["uvicorn","--log-level", "debug", "--host", "0.0.0.0", "bareos_restapi:app", "--reload"] diff --git a/api/22-alpine/docker-entrypoint.sh b/api/22-alpine/docker-entrypoint.sh new file mode 100644 index 00000000..c9eb80ee --- /dev/null +++ b/api/22-alpine/docker-entrypoint.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env ash +#set -x + +secret=`tr -cd "[:alnum:]" < /dev/urandom | fold -w30 | head -n1` + +# Generate api.ini config +cat < /home/bareos/api.ini +[Director] +Name=${BAREOS_DIR_HOST} +Address=${BAREOS_DIR_HOST} +Port=9101 + +[JWT] +secret_key = ${secret} +algorithm = HS256 +access_token_expire_minutes = 30 +EOF + +# Run Dockerfile CMD +exec "$@" diff --git a/client/22-alpine/Dockerfile b/client/22-alpine/Dockerfile new file mode 100644 index 00000000..ec1f6c8c --- /dev/null +++ b/client/22-alpine/Dockerfile @@ -0,0 +1,35 @@ +# Dockerfile Bareos client/file daemon +FROM alpine:3.20 + +LABEL maintainer="barcus@tou.nu" + +ARG BUILD_DATE +ARG NAME +ARG VCS_REF +ARG VERSION + +ENV BAREOS_DAEMON_USER bareos +ENV BAREOS_DAEMON_GROUP bareos + +LABEL org.label-schema.schema-version="1.0" \ + org.label-schema.build-date=$BUILD_DATE \ + org.label-schema.name=$NAME \ + org.label-schema.vcs-ref=$VCS_REF \ + org.label-schema.vcs-url="https://github.com/barcus/bareos" \ + org.label-schema.version=$VERSION + +SHELL ["/bin/ash", "-eo", "pipefail", "-c"] + +RUN apk add --no-cache bareos-filedaemon openssh-client tar shadow bash su-exec + +RUN tar czf /bareos-fd.tgz /etc/bareos/bareos-fd.d +RUN mkdir /run/bareos \ + && chown bareos /run/bareos + +COPY docker-entrypoint.sh /docker-entrypoint.sh +RUN chmod a+x /docker-entrypoint.sh + +EXPOSE 9102 + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/usr/sbin/bareos-fd", "-f"] diff --git a/client/nightly-ubuntu/docker-entrypoint.sh b/client/22-alpine/docker-entrypoint.sh similarity index 80% rename from client/nightly-ubuntu/docker-entrypoint.sh rename to client/22-alpine/docker-entrypoint.sh index 3b1cbf43..f70d3d43 100644 --- a/client/nightly-ubuntu/docker-entrypoint.sh +++ b/client/22-alpine/docker-entrypoint.sh @@ -11,7 +11,6 @@ fi if [ $(id -u) = '0' ]; then [ -n "${PUID}" ] && usermod -u ${PUID} ${BAREOS_DAEMON_USER} [ -n "${PGID}" ] && groupmod -g ${PGID} ${BAREOS_DAEMON_GROUP} - if [ ! -f /etc/bareos/bareos-config.control ]; then tar xzf /bareos-fd.tgz --backup=simple --suffix=.before-control @@ -24,10 +23,10 @@ if [ $(id -u) = '0' ]; then # Fix permissions find /etc/bareos ! -user ${BAREOS_DAEMON_USER} -exec chown ${BAREOS_DAEMON_USER}:${BAREOS_DAEMON_GROUP} {} \; - chown -R ${BAREOS_DAEMON_USER}:${BAREOS_DAEMON_GROUP} /var/lib/bareos /var/log/bareos + chown ${BAREOS_DAEMON_USER}:${BAREOS_DAEMON_GROUP} /run/bareos /var/log/bareos /var/lib/bareos - # Gosu - [ "${BAREOS_DAEMON_USER}" != 'root' ] && exec gosu "${BAREOS_DAEMON_USER}" "$BASH_SOURCE" "$@" + # Su-exec + [ "${BAREOS_DAEMON_USER}" != 'root' ] && su-exec "${BAREOS_DAEMON_USER}" "$BASH_SOURCE" "$@" fi exec "$@" diff --git a/client/nightly-ubuntu/Dockerfile b/client/nightly-ubuntu/Dockerfile deleted file mode 100644 index 953c69b0..00000000 --- a/client/nightly-ubuntu/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -# Dockerfile Bareos client/file daemon -FROM ubuntu:jammy - -LABEL maintainer="barcus@tou.nu" - -ARG BUILD_DATE -ARG NAME -ARG VCS_REF -ARG VERSION - -LABEL org.label-schema.schema-version="1.0" \ - org.label-schema.build-date=$BUILD_DATE \ - org.label-schema.name=$NAME \ - org.label-schema.vcs-ref=$VCS_REF \ - org.label-schema.vcs-url="https://github.com/barcus/bareos" \ - org.label-schema.version=$VERSION - -ENV BAREOS_DAEMON_USER bareos -ENV BAREOS_DAEMON_GROUP bareos -ENV DEBIAN_FRONTEND noninteractive -ENV BAREOS_KEY http://download.bareos.org/bareos/experimental/nightly/xUbuntu_22.04/Release.key -ENV BAREOS_REPO http://download.bareos.org/bareos/experimental/nightly/xUbuntu_22.04/ - -SHELL ["/bin/bash", "-o", "pipefail", "-c"] - -RUN apt-get update -qq \ - && apt-get -qq -y install --no-install-recommends curl tzdata gnupg gosu \ - && curl -Ls $BAREOS_KEY -o /tmp/bareos.key \ - && apt-key --keyring /etc/apt/trusted.gpg.d/breos-keyring.gpg \ - add /tmp/bareos.key \ - && echo "deb $BAREOS_REPO /" > /etc/apt/sources.list.d/bareos.list \ - && apt-get update -qq \ - && apt-get install -qq -y --no-install-recommends \ - bareos-client mysql-client postgresql-client bareos-tools \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* - -COPY docker-entrypoint.sh /docker-entrypoint.sh -RUN chmod a+x /docker-entrypoint.sh - -RUN tar czf /bareos-fd.tgz /etc/bareos/bareos-fd.d - -EXPOSE 9102 - -ENTRYPOINT ["/docker-entrypoint.sh"] -CMD ["/usr/sbin/bareos-fd", "-f"] diff --git a/director-pgsql/22-alpine/Dockerfile b/director-pgsql/22-alpine/Dockerfile new file mode 100644 index 00000000..2443d5de --- /dev/null +++ b/director-pgsql/22-alpine/Dockerfile @@ -0,0 +1,38 @@ +# Bareos director Dockerfile +FROM alpine:3.20 + +LABEL maintainer="barcus@tou.nu" + +ARG BUILD_DATE +ARG NAME +ARG VCS_REF +ARG VERSION + +LABEL org.label-schema.schema-version="1.0" \ + org.label-schema.build-date=$BUILD_DATE \ + org.label-schema.name=$NAME \ + org.label-schema.vcs-ref=$VCS_REF \ + org.label-schema.vcs-url="https://github.com/barcus/bareos" \ + org.label-schema.version=$VERSION + +SHELL ["/bin/ash", "-eo", "pipefail", "-c"] + +RUN apk add --no-cache bareos bareos-postgresql postgresql-client curl tzdata tar + +RUN tar czf /bareos-dir.tgz /etc/bareos +RUN mkdir /run/bareos \ + && chown bareos /run/bareos + +COPY webhook-notify /usr/local/bin/webhook-notify +RUN chmod u+x /usr/local/bin/webhook-notify + +COPY docker-entrypoint.sh /docker-entrypoint.sh +RUN chmod u+x /docker-entrypoint.sh + +EXPOSE 9101 + +VOLUME /etc/bareos +VOLUME /var/lib/bareos + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/usr/sbin/bareos-dir", "-u", "bareos", "-f"] diff --git a/director-pgsql/nightly-ubuntu/docker-entrypoint.sh b/director-pgsql/22-alpine/docker-entrypoint.sh similarity index 78% rename from director-pgsql/nightly-ubuntu/docker-entrypoint.sh rename to director-pgsql/22-alpine/docker-entrypoint.sh index c6f3928e..d7b716bb 100644 --- a/director-pgsql/nightly-ubuntu/docker-entrypoint.sh +++ b/director-pgsql/22-alpine/docker-entrypoint.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env ash github_bareos='raw.githubusercontent.com/bareos/bareos' webui_admin_conf='master/webui/install/bareos/bareos-dir.d/profile/webui-admin.conf' @@ -21,11 +21,13 @@ if [ ! -f /etc/bareos/bareos-config.control ]; then # Update bareos-director configs # Director / mycatalog & mail report - sed -i 's#dbuser = "bareos"#dbuser = '\"${DB_USER}\"'#' \ + sed -i "s#dbuser =.*#dbuser = $DB_USER#" \ /etc/bareos/bareos-dir.d/catalog/MyCatalog.conf - sed -i 's#dbpassword = ""#dbpassword = '\"${DB_PASSWORD}\"'#' \ + sed -i 's#dbpassword =.*#dbpassword = '\""${DB_PASSWORD}"\"'#' \ /etc/bareos/bareos-dir.d/catalog/MyCatalog.conf - sed -i 's#dbname = "bareos"#dbname = '\"${DB_NAME}\"'\n dbaddress = '\"${DB_HOST}\"'\n dbport = '\"${DB_PORT}\"'#' \ + sed -i 's#dbname =.*#dbname = '\""${DB_NAME}"\"'\n dbaddress = '\""${DB_HOST}"\"'\n dbport = '\""${DB_PORT}"\"'#' \ + /etc/bareos/bareos-dir.d/catalog/MyCatalog.conf + sed -i 's#dbdriver = .*#dbdriver = '\""postgresql"\"'#' \ /etc/bareos/bareos-dir.d/catalog/MyCatalog.conf [ -n "${SENDER_MAIL}" ] && sed -i "s#<%r#<${SENDER_MAIL}#g" \ /etc/bareos/bareos-dir.d/messages/Daemon.conf @@ -35,7 +37,7 @@ if [ ! -f /etc/bareos/bareos-config.control ]; then /etc/bareos/bareos-dir.d/messages/Daemon.conf [ -n "${SENDER_MAIL}" ] && sed -i "s#<%r#<${SENDER_MAIL}#g" \ /etc/bareos/bareos-dir.d/messages/Standard.conf - sed -i "s#/usr/bin/bsmtp -h localhost#/usr/bin/bsmtp -h ${SMTP_HOST}#" \ + sed -i "s#/usr/bin/bsmtp -h localhost#/usr/bin/bsmtp -h ${SMTP_HOST}#g" \ /etc/bareos/bareos-dir.d/messages/Standard.conf sed -i "s#mail = root#mail = ${ADMIN_MAIL}#" \ /etc/bareos/bareos-dir.d/messages/Standard.conf @@ -63,12 +65,19 @@ if [ ! -f /etc/bareos/bareos-config.control ]; then # webUI sed -i 's#Password = .*#Password = '\""${BAREOS_WEBUI_PASSWORD}"\"'#' \ /etc/bareos/bareos-dir.d/console/admin.conf - sed -i "s#}# TlsEnable = false\n}#" \ - /etc/bareos/bareos-dir.d/console/admin.conf + # MyCatalog Backup sed -i "s#/var/lib/bareos/bareos.sql#/var/lib/bareos-director/bareos.sql#" \ /etc/bareos/bareos-dir.d/fileset/Catalog.conf + sed -i "s#make_catalog_backup MyCatalog#make_catalog_backup ${DB_NAME} ${DB_USER} '' ${DB_HOST}#" \ + /etc/bareos/bareos-dir.d/job/BackupCatalog.conf + + # Add pgpass file to ${DB_USER} home + homedir=$(getent passwd "$DB_USER" | cut -d: -f6) + echo "${DB_HOST}:${DB_PORT}:${DB_NAME}:${DB_USER}:${DB_PASSWORD}" > "${homedir}/.pgpass" + chmod 600 "${homedir}/.pgpass" + chown "${DB_USER}" "${homedir}/.pgpass" # Control file touch /etc/bareos/bareos-config.control @@ -97,16 +106,15 @@ export PGPASSWORD=${DB_ADMIN_PASSWORD} [[ -z "${DB_UPDATE}" ]] && DB_UPDATE='false' if [ ! -f /etc/bareos/bareos-db.control ] && [ "${DB_INIT}" == 'true' ] ; then - # Init Postgresql DB + # Init Postgres DB echo "Bareos DB init" echo "Bareos DB init: Create user ${DB_USER}" psql -c "create user ${DB_USER} with createdb createrole login;" echo "Bareos DB init: Set user password" psql -c "alter user ${DB_USER} password '${DB_PASSWORD}';" - /usr/lib/bareos/scripts/create_bareos_database 2>/dev/null - /usr/lib/bareos/scripts/make_bareos_tables 2>/dev/null - /usr/lib/bareos/scripts/grant_bareos_privileges 2>/dev/null - + /etc/bareos/scripts/create_bareos_database 2>/dev/null + /etc/bareos/scripts/make_bareos_tables 2>/dev/null + /etc/bareos/scripts/grant_bareos_privileges 2>/dev/null # Control file touch /etc/bareos/bareos-db.control fi @@ -115,14 +123,14 @@ if [ "${DB_UPDATE}" == 'true' ] ; then # Try Postgres upgrade echo "Bareoos DB update" echo "Bareoos DB update: Update tables" - /usr/lib/bareos/scripts/update_bareos_tables 2>/dev/null + /etc/bareos/scripts/update_bareos_tables 2>/dev/null echo "Bareoos DB update: Grant privileges" - /usr/lib/bareos/scripts/grant_bareos_privileges 2>/dev/null + /etc/bareos/scripts/grant_bareos_privileges 2>/dev/null fi # Fix permissions find /etc/bareos ! -user bareos -exec chown bareos {} \; -chown -R bareos:bareos /var/lib/bareos +chown -R bareos:bareos /var/lib/bareos /var/log/bareos # Run Dockerfile CMD exec "$@" diff --git a/director-pgsql/nightly-ubuntu/webhook-notify b/director-pgsql/22-alpine/webhook-notify similarity index 100% rename from director-pgsql/nightly-ubuntu/webhook-notify rename to director-pgsql/22-alpine/webhook-notify diff --git a/director-pgsql/nightly-ubuntu/Dockerfile b/director-pgsql/nightly-ubuntu/Dockerfile deleted file mode 100644 index b95f6381..00000000 --- a/director-pgsql/nightly-ubuntu/Dockerfile +++ /dev/null @@ -1,60 +0,0 @@ -# Bareos director Dockerfile -FROM ubuntu:jammy - -LABEL maintainer="barcus@tou.nu" - -ARG BUILD_DATE -ARG NAME -ARG VCS_REF -ARG VERSION - -LABEL org.label-schema.schema-version="1.0" \ - org.label-schema.build-date=$BUILD_DATE \ - org.label-schema.name=$NAME \ - org.label-schema.vcs-ref=$VCS_REF \ - org.label-schema.vcs-url="https://github.com/barcus/bareos" \ - org.label-schema.version=$VERSION - -ENV DEBIAN_FRONTEND noninteractive -ENV BAREOS_KEY http://download.bareos.org/bareos/experimental/nightly/xUbuntu_22.04/Release.key -ENV BAREOS_REPO http://download.bareos.org/bareos/experimental/nightly/xUbuntu_22.04/ -ENV BAREOS_DPKG_CONF bareos-database-common bareos-database-common - -SHELL ["/bin/bash", "-o", "pipefail", "-c"] - -RUN apt-get update -qq \ - && apt-get -qq -y install --no-install-recommends curl tzdata gnupg \ - && curl -Ls $BAREOS_KEY -o /tmp/bareos.key \ - && apt-key --keyring /etc/apt/trusted.gpg.d/breos-keyring.gpg \ - add /tmp/bareos.key \ - && echo "deb $BAREOS_REPO /" > /etc/apt/sources.list.d/bareos.list \ - && echo "${BAREOS_DPKG_CONF}/dbconfig-install boolean false" \ - | debconf-set-selections \ - && echo "${BAREOS_DPKG_CONF}/install-error select ignore" \ - | debconf-set-selections \ - && echo "${BAREOS_DPKG_CONF}/database-type select pgsql" \ - | debconf-set-selections \ - && echo "${BAREOS_DPKG_CONF}/missing-db-package-error select ignore" \ - | debconf-set-selections \ - && echo 'postfix postfix/main_mailer_type select No configuration' \ - | debconf-set-selections \ - && apt-get update -qq \ - && apt-get install -qq -y --no-install-recommends \ - bareos postgresql-client bareos-tools \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* - -RUN tar czf /bareos-dir.tgz /etc/bareos - -COPY webhook-notify /usr/local/bin/webhook-notify -RUN chmod u+x /usr/local/bin/webhook-notify - -COPY docker-entrypoint.sh /docker-entrypoint.sh -RUN chmod u+x /docker-entrypoint.sh - -EXPOSE 9101 - -VOLUME /etc/bareos - -ENTRYPOINT ["/docker-entrypoint.sh"] -CMD ["/usr/sbin/bareos-dir", "-u", "bareos", "-f"] diff --git a/storage/22-alpine/Dockerfile b/storage/22-alpine/Dockerfile new file mode 100644 index 00000000..ec2f222a --- /dev/null +++ b/storage/22-alpine/Dockerfile @@ -0,0 +1,35 @@ +# Dockerfile Bareos storage daemon +FROM alpine:3.20 + +LABEL maintainer="barcus@tou.nu" + +ARG BUILD_DATE +ARG NAME +ARG VCS_REF +ARG VERSION + +LABEL org.label-schema.schema-version="1.0" \ + org.label-schema.build-date=$BUILD_DATE \ + org.label-schema.name=$NAME \ + org.label-schema.vcs-ref=$VCS_REF \ + org.label-schema.vcs-url="https://github.com/barcus/bareos" \ + org.label-schema.version=$VERSION + +SHELL ["/bin/ash", "-eo", "pipefail", "-c"] + +RUN apk add --no-cache bareos bareos-storage tar + +RUN tar czf /bareos-sd.tgz /etc/bareos/bareos-sd.d +RUN mkdir /run/bareos \ + && chown bareos /run/bareos + +COPY docker-entrypoint.sh /docker-entrypoint.sh +RUN chmod u+x /docker-entrypoint.sh + +EXPOSE 9103 + +VOLUME /etc/bareos +VOLUME /var/lib/bareos/storage + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/usr/sbin/bareos-sd", "-u", "bareos", "-f"] diff --git a/storage/nightly-ubuntu/docker-entrypoint.sh b/storage/22-alpine/docker-entrypoint.sh similarity index 68% rename from storage/nightly-ubuntu/docker-entrypoint.sh rename to storage/22-alpine/docker-entrypoint.sh index 3c02e691..781e9c36 100644 --- a/storage/nightly-ubuntu/docker-entrypoint.sh +++ b/storage/22-alpine/docker-entrypoint.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env ash bareos_sd_config="/etc/bareos/bareos-sd.d/director/bareos-dir.conf" @@ -13,8 +13,10 @@ if [ ! -f /etc/bareos/bareos-config.control ]; then fi # Fix permissions +find /var/lib/bareos ! -user bareos -exec chown bareos {} \; find /etc/bareos/bareos-sd.d ! -user bareos -exec chown bareos {} \; -chown -R bareos /var/lib/bareos /dev/[n]st* /dev/tape +find /dev -regex "/dev/[n]?st[0-9]+" ! -user bareos -exec chown bareos {} \; +find /dev -regex "/dev/tape/.*" ! -user bareos -exec chown bareos {} \; # Run Dockerfile CMD exec "$@" diff --git a/storage/nightly-ubuntu/Dockerfile b/storage/nightly-ubuntu/Dockerfile deleted file mode 100644 index af25c20a..00000000 --- a/storage/nightly-ubuntu/Dockerfile +++ /dev/null @@ -1,48 +0,0 @@ -# Dockerfile Bareos storage daemon -FROM ubuntu:jammy - -LABEL maintainer="barcus@tou.nu" - -ARG BUILD_DATE -ARG NAME -ARG VCS_REF -ARG VERSION - -LABEL org.label-schema.schema-version="1.0" \ - org.label-schema.build-date=$BUILD_DATE \ - org.label-schema.name=$NAME \ - org.label-schema.vcs-ref=$VCS_REF \ - org.label-schema.vcs-url="https://github.com/barcus/bareos" \ - org.label-schema.version=$VERSION - -ENV BAREOS_KEY http://download.bareos.org/bareos/experimental/nightly/xUbuntu_22.04/Release.key -ENV BAREOS_REPO http://download.bareos.org/bareos/experimental/nightly/xUbuntu_22.04/ -ENV DEBIAN_FRONTEND noninteractive - -SHELL ["/bin/bash", "-o", "pipefail", "-c"] - -RUN apt-get update -qq \ - && apt-get -qq -y install --no-install-recommends curl tzdata gnupg \ - && curl -Ls $BAREOS_KEY -o /tmp/bareos.key \ - && apt-key --keyring /etc/apt/trusted.gpg.d/breos-keyring.gpg \ - add /tmp/bareos.key \ - && echo "deb $BAREOS_REPO /" > /etc/apt/sources.list.d/bareos.list \ - && apt-get update -qq \ - && apt-get install -qq -y --no-install-recommends \ - bareos-storage bareos-tools bareos-storage-tape mtx scsitools \ - sg3-utils mt-st bareos-storage-droplet \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* - -COPY docker-entrypoint.sh /docker-entrypoint.sh -RUN chmod u+x /docker-entrypoint.sh - -RUN tar czf /bareos-sd.tgz /etc/bareos/bareos-sd.d - -EXPOSE 9103 - -VOLUME /etc/bareos -VOLUME /var/lib/bareos/storage - -ENTRYPOINT ["/docker-entrypoint.sh"] -CMD ["/usr/sbin/bareos-sd", "-u", "bareos", "-f"] diff --git a/webui/22-alpine/Dockerfile b/webui/22-alpine/Dockerfile new file mode 100644 index 00000000..d11596da --- /dev/null +++ b/webui/22-alpine/Dockerfile @@ -0,0 +1,17 @@ +# Bareos Web-ui Dockerfile +FROM alpine:3.20 + +RUN apk add --no-cache bareos-webui-nginx + +COPY docker-entrypoint.sh /docker-entrypoint.sh +RUN chmod u+x /docker-entrypoint.sh +RUN tar cfvz /bareos-webui-config.tgz /etc/bareos-webui +RUN tar cfvz /bareos-webui-code.tgz /usr/share/bareos-webui +RUN mkdir -p /run/nginx + +EXPOSE 9100 + +VOLUME /etc/bareos-webui + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/usr/sbin/nginx", "-g", "daemon off;"] diff --git a/webui/22-alpine/docker-entrypoint.sh b/webui/22-alpine/docker-entrypoint.sh new file mode 100644 index 00000000..a951ee04 --- /dev/null +++ b/webui/22-alpine/docker-entrypoint.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env ash + +if [ ! -f /etc/bareos-webui/bareos-config.control ] + then + tar xfvz /bareos-webui-config.tgz + + # Update bareos-webui config + sed -i "s/diraddress = \"localhost\"/diraddress = \"${BAREOS_DIR_HOST}\"/" /etc/bareos-webui/directors.ini + + # Control file + touch /etc/bareos-webui/bareos-config.control +fi + +if [ ! -f /usr/share/bareos-webui/bareos-config.control ] + then + tar xfvz /bareos-webui-code.tgz + touch /usr/share/bareos-webui/bareos-config.control +fi + +# Fix nginx 'client_max_body_size' +sed -i "s#client_max_body_size 1m#client_max_body_size 20m#" /etc/nginx/nginx.conf + +# set php-fpm host andd port +sed -i "s/fastcgi_pass 127.0.0.1:9000;/fastcgi_pass ${PHP_FPM_HOST}:${PHP_FPM_PORT};/" /etc/nginx/http.d/bareos-webui.conf + +exec "$@" diff --git a/webui/nightly-ubuntu/Dockerfile b/webui/nightly-ubuntu/Dockerfile deleted file mode 100644 index cff75723..00000000 --- a/webui/nightly-ubuntu/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -# Bareos Web-ui Dockerfile -FROM ubuntu:jammy - -LABEL maintainer="barcus@tou.nu" - -ARG BUILD_DATE -ARG NAME -ARG VCS_REF -ARG VERSION - -LABEL org.label-schema.schema-version="1.0" \ - org.label-schema.build-date=$BUILD_DATE \ - org.label-schema.name=$NAME \ - org.label-schema.vcs-ref=$VCS_REF \ - org.label-schema.vcs-url="https://github.com/barcus/bareos" \ - org.label-schema.version=$VERSION - -ENV BAREOS_KEY http://download.bareos.org/bareos/experimental/nightly/xUbuntu_22.04/Release.key -ENV BAREOS_REPO http://download.bareos.org/bareos/experimental/nightly/xUbuntu_22.04/ -ENV DEBIAN_FRONTEND noninteractive - -SHELL ["/bin/bash", "-o", "pipefail", "-c"] - -RUN apt-get update -qq \ - && apt-get -qq -y install --no-install-recommends curl tzdata gnupg \ - && curl -Ls $BAREOS_KEY -o /tmp/bareos.key \ - && apt-key --keyring /etc/apt/trusted.gpg.d/breos-keyring.gpg \ - add /tmp/bareos.key \ - && echo "deb $BAREOS_REPO /" > /etc/apt/sources.list.d/bareos.list \ - && apt-get update -qq \ - && apt-get install -qq -y --no-install-recommends \ - bareos-webui \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* - -COPY docker-entrypoint.sh /docker-entrypoint.sh -RUN chmod u+x /docker-entrypoint.sh - -RUN tar czf /bareos-webui.tgz /etc/bareos-webui - -EXPOSE 80 - -VOLUME /etc/bareos-webui - -ENTRYPOINT ["/docker-entrypoint.sh"] -CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"] diff --git a/webui/nightly-ubuntu/docker-entrypoint.sh b/webui/nightly-ubuntu/docker-entrypoint.sh deleted file mode 100644 index 94b0af54..00000000 --- a/webui/nightly-ubuntu/docker-entrypoint.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env bash - -if [ ! -f /etc/bareos-webui/bareos-config.control ];then - tar xzf /bareos-webui.tgz --backup=simple --suffix=.before-control - - # Update bareos-webui config - sed -i 's#diraddress.*#diraddress = '\""${BAREOS_DIR_HOST}"\"'#' \ - /etc/bareos-webui/directors.ini - - # Control file - touch /etc/bareos-webui/bareos-config.control -fi - -apache_conf="/etc/apache2/sites-available/000-default.conf" - -# Set document root -sed -i "s#/var/www/html#/usr/share/bareos-webui/public#g" $apache_conf - -# Enable Apache server stats -if [ "${SERVER_STATS}" == "yes" ]; then - sed -i 's!#ServerName.*!Alias /server-status /var/www/dummy!' $apache_conf -fi - -# Run Dockerfile CMD -exec "$@"