diff --git a/deploy/docker/cloudbeaver-ce/Dockerfile b/deploy/docker/cloudbeaver-ce/Dockerfile index 95bdcc6812..ed385f0164 100644 --- a/deploy/docker/cloudbeaver-ce/Dockerfile +++ b/deploy/docker/cloudbeaver-ce/Dockerfile @@ -2,12 +2,17 @@ FROM dbeaver/base-java MAINTAINER DBeaver Corp, devops@dbeaver.com -RUN apt-get update; \ +RUN useradd -m -s /bin/bash dbeaver && \ + apt-get update; \ apt-get upgrade -y; COPY cloudbeaver /opt/cloudbeaver +COPY scripts/launch-product.sh /opt/cloudbeaver/launch-product.sh +RUN chmod +x /opt/cloudbeaver/launch-product.sh +RUN chown -R dbeaver:dbeaver /opt/cloudbeaver EXPOSE 8978 RUN find /opt/cloudbeaver -type d -exec chmod 775 {} \; WORKDIR /opt/cloudbeaver/ -ENTRYPOINT ["./run-server.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..2be1bf59e4 --- /dev/null +++ b/deploy/scripts/launch-product.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +# This script is needed to change ownership and run the application as user dbeaver during the upgrade from version 24.2.0 + +# Define the path to the workspace volume and user/group for ownership changes +VOLUME_PATH="/opt/cloudbeaver/workspace" +NEW_USER="dbeaver" +NEW_GROUP="dbeaver" + +# Change ownership of the VOLUME_PATH to the dbeaver user and group +chown -R $NEW_USER:$NEW_GROUP $VOLUME_PATH + +# This allows the dbeaver user and group to have read, write, and execute permissions, while others have only read and execute +find $VOLUME_PATH -type d -exec chmod 775 {} + + +# This allows the dbeaver user and group to read and write files, while others can only read +find $VOLUME_PATH -type f -exec chmod 664 {} + + +# This ensures that the root workspace directory itself has the correct permissions +chmod 775 $VOLUME_PATH + +# Execute run-server.sh as the dbeaver user with the JAVA_HOME and PATH environment variables +exec su $NEW_USER -c "JAVA_HOME=$JAVA_HOME PATH=$PATH ./run-server.sh" \ No newline at end of file