diff --git a/docker/Dockerfile b/docker/Dockerfile index cace755..3932404 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -9,24 +9,24 @@ VOLUME $GITBUCKET_HOME/repositories VOLUME $GITBUCKET_HOME/plugins -# set environment -#RUN mkdir $GITBUCKET_HOME -WORKDIR $GITBUCKET_HOME - # setup RUN apk update -RUN apk add ca-certificates wget +RUN apk add ca-certificates wget su-exec + +# get gitbucket RUN wget https://github.com/gitbucket/gitbucket/releases/download/4.13/gitbucket.war -O $GITBUCKET_HOME/latest.war # clean RUN apk del ca-certificates wget RUN rm -rf /var/cache/apk/* +# set environment +WORKDIR $GITBUCKET_HOME + # copy files COPY docker-entrypoint.sh / COPY database.conf ./ - RUN chmod +x /docker-entrypoint.sh ENTRYPOINT ["/docker-entrypoint.sh"] -CMD java -jar $GITBUCKET_HOME/latest.war --host=$GITBUCKET_HOST --port=$GITBUCKET_PORT --gitbucket.home=$GITBUCKET_HOME +CMD su-exec gitbucket java -jar $GITBUCKET_HOME/latest.war --host=$GITBUCKET_HOST --port=$GITBUCKET_PORT --gitbucket.home=$GITBUCKET_HOME diff --git a/docker/docker-entrypoint.sh b/docker/docker-entrypoint.sh index 6b8305c..b26caf6 100644 --- a/docker/docker-entrypoint.sh +++ b/docker/docker-entrypoint.sh @@ -1,6 +1,17 @@ #!/bin/bash set -e +# check for exisitng user and create it if necessary +USER_ID=${GITBUCKET_USER_ID:-9000} +echo "gitbucket user id: $USER_ID" +if ! id -u gitbucket >/dev/null 2>&1; then + echo "create gitbucket user" + adduser -u $USER_ID --disabled-password --gecos '' --home ${GITBUCKET_HOME} gitbucket +fi + +# update user rights +chown -R gitbucket:gitbucket ${GITBUCKET_HOME} + # replace mysql settings in config file dbfile=${GITBUCKET_HOME}/database.conf sed -i "s/GITBUCKET_DATABASE_NAME/${GITBUCKET_DATABASE_NAME}/" $dbfile