From 3e7d8db7a2f52fcbe3e4a863d29d10eee90e2ff8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=93scar=20Garc=C3=ADa=20Amor?= <ogarcia@connectical.com>
Date: Fri, 2 Oct 2015 21:18:13 +0200
Subject: [PATCH] Several bugfixes in Docker build

- Removed unnecessary variables
- Fixed symbolic links creation
- Fixed enter point
- Less intermediate containers
---
 Dockerfile         | 12 ++----------
 docker/build.sh    |  8 ++++++++
 docker/s6/gogs/run | 14 ++++++--------
 3 files changed, 16 insertions(+), 18 deletions(-)

diff --git a/Dockerfile b/Dockerfile
index fd431a083b..1f5c9b5d99 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 0616aa40f4..cc66f778a6 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 a7b4cc55ee..626012c218 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