From ae1f0b74702e7500fbeedbd728ab0ab4edec4367 Mon Sep 17 00:00:00 2001 From: mayer <57711367+mayerro@users.noreply.github.com> Date: Thu, 21 Nov 2024 18:29:18 +0100 Subject: [PATCH] Devops#1553 root user fix (#3087) * Reapply "dbeaver/dbeaver-devops#1553 Added user dbeaver in dockerfile cloudbeaver (#3067)" This reverts commit a36a5550e091297a22adc20bf7cf32c03f85d80d. * dbeaver/dbeaver-devops#1553 updated base-java image with user * dbeaver/dbeaver-devops#1553 fixed user usage and ownership applying * dbeaver/dbeaver-devops#1553 changed GID UID * dbeaver/dbeaver-devops#1553 desc of chowner fixed * dbeaver/dbeaver-devops#1553 fixed user creation * dbeaver/dbeaver-devops#1553 Added creating dbeaver user in ce dockerfile * dbeaver/dbeaver-devops#1553 Removed comment * dbeaver/dbeaver-devops#1553 Removed comment * dbeaver/dbeaver-devops#1553 Rewrited comment * dbeaver/dbeaver-devops#1553 Replaced UID on user name --------- Co-authored-by: Greg Miller Co-authored-by: Mikhailov Grigorii <49814763+ggxed@users.noreply.github.com> --- deploy/docker/base-java/Dockerfile | 3 +-- deploy/docker/cloudbeaver-ce/Dockerfile | 20 ++++++++++++++++---- deploy/scripts/launch-product.sh | 11 +++++++++++ 3 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 deploy/scripts/launch-product.sh diff --git a/deploy/docker/base-java/Dockerfile b/deploy/docker/base-java/Dockerfile index b59a3fc0b9..c0827d7811 100644 --- a/deploy/docker/base-java/Dockerfile +++ b/deploy/docker/base-java/Dockerfile @@ -23,8 +23,7 @@ RUN set -eux; \ tzdata \ # locales ensures proper character encoding and locale-specific behaviors using en_US.UTF-8 locales \ - nano \ - ; \ + nano && \ echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen; \ locale-gen en_US.UTF-8; \ rm -rf /var/lib/apt/lists/* diff --git a/deploy/docker/cloudbeaver-ce/Dockerfile b/deploy/docker/cloudbeaver-ce/Dockerfile index 95bdcc6812..18a1d20051 100644 --- a/deploy/docker/cloudbeaver-ce/Dockerfile +++ b/deploy/docker/cloudbeaver-ce/Dockerfile @@ -2,12 +2,24 @@ FROM dbeaver/base-java MAINTAINER DBeaver Corp, devops@dbeaver.com -RUN apt-get update; \ - apt-get upgrade -y; - +ENV DBEAVER_GID=8978 +ENV DBEAVER_UID=8978 + +RUN apt-get update && \ + apt-get upgrade -y + +RUN groupadd -g $DBEAVER_GID dbeaver && \ + useradd -g $DBEAVER_GID -M -u $DBEAVER_UID -s /bin/bash dbeaver + COPY cloudbeaver /opt/cloudbeaver +COPY scripts/launch-product.sh /opt/cloudbeaver/launch-product.sh + +RUN chown -R $DBEAVER_UID:$DBEAVER_GID /opt/cloudbeaver EXPOSE 8978 RUN find /opt/cloudbeaver -type d -exec chmod 775 {} \; WORKDIR /opt/cloudbeaver/ -ENTRYPOINT ["./run-server.sh"] + +RUN chmod +x "run-server.sh" "/opt/cloudbeaver/launch-product.sh" + +ENTRYPOINT ["./launch-product.sh"] diff --git a/deploy/scripts/launch-product.sh b/deploy/scripts/launch-product.sh new file mode 100644 index 0000000000..605a4d7a7a --- /dev/null +++ b/deploy/scripts/launch-product.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +# This script is needed to change ownership and run the application as user dbeaver during the upgrade from version 24.2.0 + +# Change ownership of the WORKDIR to the dbeaver user and group +# Variables DBEAVER_ are defined in the Dockerfile and exported to the runtime environment +# PWD equals WORKDIR value from product Dockerfile +chown -R $DBEAVER_UID:$DBEAVER_GID $PWD + +# Execute run-server.sh as the dbeaver user with the JAVA_HOME and PATH environment variables +exec su dbeaver -c "JAVA_HOME=$JAVA_HOME PATH=$PATH ./run-server.sh" \ No newline at end of file