diff --git a/Dockerfile b/Dockerfile index fd431a083bc..1f5c9b5d990 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,21 +9,13 @@ RUN echo "@edge http://dl-4.alpinelinux.org/alpine/edge/main" | tee -a /etc/apk/ && apk -U --no-progress add ca-certificates bash git linux-pam s6@edge curl openssh socat \ && chmod +x /usr/sbin/gosu -# Configure Go and build Gogs -ENV GOPATH /tmp/go -ENV PATH $PATH:$GOPATH/bin +ENV GOGS_CUSTOM /data/gogs COPY . /app/gogs/ WORKDIR /app/gogs/ RUN ./docker/build.sh -ENV GOGS_CUSTOM /data/gogs - -# Create git user for Gogs -RUN adduser -D -g 'Gogs Git User' git -h /data/git/ -s /bin/sh && passwd -u git -RUN echo "export GOGS_CUSTOM=/data/gogs" >> /etc/profile - # Configure Docker Container VOLUME ["/data"] EXPOSE 22 3000 -CMD ["./docker/start.sh"] +CMD ["docker/start.sh"] diff --git a/docker/build.sh b/docker/build.sh index 0616aa40f45..cc66f778a67 100755 --- a/docker/build.sh +++ b/docker/build.sh @@ -1,5 +1,9 @@ #!/bin/sh +# Set temp environment vars +export GOPATH=/tmp/go +export PATH=${PATH}:${GOPATH}/bin + # Install build deps apk -U --no-progress add linux-pam-dev go@community gcc musl-dev @@ -15,3 +19,7 @@ rm -r $GOPATH # Remove build deps apk --no-progress del linux-pam-dev go gcc musl-dev + +# Create git user for Gogs +adduser -H -D -g 'Gogs Git User' git -h /data/git -s /bin/bash && passwd -u git +echo "export GOGS_CUSTOM=${GOGS_CUSTOM}" >> /etc/profile diff --git a/docker/s6/gogs/run b/docker/s6/gogs/run index a7b4cc55ee4..626012c218e 100755 --- a/docker/s6/gogs/run +++ b/docker/s6/gogs/run @@ -1,6 +1,5 @@ #!/bin/sh USER=git -USERNAME=$USER if ! test -d /data/gogs; then mkdir -p /data/gogs/data /data/gogs/conf /data/gogs/log /data/git @@ -12,17 +11,16 @@ if ! test -d ~git/.ssh; then fi if ! test -f ~git/.ssh/environment; then - echo "GOGS_CUSTOM=/data/gogs" > ~git/.ssh/environment - chown git:git ~git/.ssh/environment - chown 600 ~git/.ssh/environment + echo "GOGS_CUSTOM=${GOGS_CUSTOM}" > ~git/.ssh/environment + chmod 600 ~git/.ssh/environment fi -ln -sf /data/gogs/log /app/gogs/log -ln -sf /data/gogs/data /app/gogs/data -ln -sf /data/gogs/conf /app/gogs/conf +cd /app/gogs + +ln -sf /data/gogs/log ./log +ln -sf /data/gogs/data ./data chown -R git:git /data /app/gogs ~git/ export USER -export USERNAME exec gosu $USER /app/gogs/gogs web