From be90ea583a3d65566be8bfbf3440cf0c20557972 Mon Sep 17 00:00:00 2001
From: Unknwon <u@gogs.io>
Date: Tue, 25 Aug 2015 12:41:01 +0800
Subject: [PATCH] #1521 reduce Docker image size

---
 .dockerignore          | 12 ++++++++
 Dockerfile             | 65 ++++++++++++++++++++++++++----------------
 public/ng/css/gogs.css |  2 +-
 3 files changed, 53 insertions(+), 26 deletions(-)
 create mode 100644 .dockerignore

diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000000..fe2ac6ec77
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,12 @@
+.git/*
+conf/*
+packager/*
+scripts/*
+*.yml
+*.md
+.bra.toml
+.editorconfig
+.gitignore
+.gopmfile
+config.codekit
+LICENSE
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
index baba8f19d3..9186a47116 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,39 +1,54 @@
-FROM google/golang:latest
-MAINTAINER codeskyblue@gmail.com
+FROM google/debian:wheezy
+MAINTAINER u@gogs.io
 
-RUN echo "deb http://ftp.debian.org/debian/ wheezy-backports main" >> /etc/apt/sources.list
-RUN apt-get update
-RUN apt-get install -y openssh-server rsync libpam-dev
+RUN echo "deb http://ftp.debian.org/debian/ wheezy-backports main" >> /etc/apt/sources.list && \
+	apt-get update -qqy && \
+	apt-get install --no-install-recommends -qqy \
+	curl build-essential ca-certificates git \ 
+	openssh-server rsync libpam-dev && \
+	apt-get autoclean && \
+    apt-get autoremove && \
+    rm -rf /var/lib/apt/lists/*
 
-# set the working directory and add current stuff
-COPY  . /gopath/src/github.com/gogits/gogs/
+ENV GOROOT /goroot
+ENV GOPATH /gopath
+ENV PATH $PATH:$GOROOT/bin:$GOPATH/bin
+
+COPY . /gopath/src/github.com/gogits/gogs/
 WORKDIR /gopath/src/github.com/gogits/gogs/
 
-RUN go get -v -tags "sqlite redis memcache cert pam"
-RUN go build -tags "sqlite redis memcache cert pam"
+# Build binary and clean up useless files
+RUN mkdir /goroot && \
+	curl https://storage.googleapis.com/golang/go1.5.linux-amd64.tar.gz | tar xzf - -C /goroot --strip-components=1 && \
+	go get -v -tags "sqlite redis memcache cert pam" && \
+	go build -tags "sqlite redis memcache cert pam" && \
+	mkdir /app/ && \
+	mv /gopath/src/github.com/gogits/gogs/ /app/gogs/ && \
+	rm -r $GOROOT $GOPATH
+
+WORKDIR /app/gogs/
 
 RUN useradd --shell /bin/bash --system --comment gogits git
 
-RUN mkdir /var/run/sshd
-# SSH login fix. Otherwise user is kicked off after login
-RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
-RUN sed 's@UsePrivilegeSeparation yes@UsePrivilegeSeparation no@' -i /etc/ssh/sshd_config
-RUN echo "export VISIBLE=now" >> /etc/profile
-RUN echo "PermitUserEnvironment yes" >> /etc/ssh/sshd_config
+# SSH login fix, otherwise user is kicked off after login
+RUN mkdir /var/run/sshd && \
+	sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd && \
+	sed 's@UsePrivilegeSeparation yes@UsePrivilegeSeparation no@' -i /etc/ssh/sshd_config && \
+	echo "export VISIBLE=now" >> /etc/profile && \
+	echo "PermitUserEnvironment yes" >> /etc/ssh/sshd_config
 
-# setup server keys on startup
-RUN sed 's@^HostKey@\#HostKey@' -i /etc/ssh/sshd_config
-RUN echo "HostKey /data/ssh/ssh_host_key" >> /etc/ssh/sshd_config
-RUN echo "HostKey /data/ssh/ssh_host_rsa_key" >> /etc/ssh/sshd_config
-RUN echo "HostKey /data/ssh/ssh_host_dsa_key" >> /etc/ssh/sshd_config
-RUN echo "HostKey /data/ssh/ssh_host_ecdsa_key" >> /etc/ssh/sshd_config
-RUN echo "HostKey /data/ssh/ssh_host_ed25519_key" >> /etc/ssh/sshd_config
+# Setup server keys on startup
+RUN sed 's@^HostKey@\#HostKey@' -i /etc/ssh/sshd_config && \
+	echo "HostKey /data/ssh/ssh_host_key" >> /etc/ssh/sshd_config && \
+	echo "HostKey /data/ssh/ssh_host_rsa_key" >> /etc/ssh/sshd_config && \
+	echo "HostKey /data/ssh/ssh_host_dsa_key" >> /etc/ssh/sshd_config && \
+	echo "HostKey /data/ssh/ssh_host_ecdsa_key" >> /etc/ssh/sshd_config && \
+	echo "HostKey /data/ssh/ssh_host_ed25519_key" >> /etc/ssh/sshd_config
 
-# prepare data
-#ENV USER="git" HOME="/home/git"
+# Prepare data
 ENV GOGS_CUSTOM /data/gogs
 RUN echo "export GOGS_CUSTOM=/data/gogs" >> /etc/profile
 
 EXPOSE 22 3000
 ENTRYPOINT []
-CMD ["./docker/start.sh"]
+CMD ["./docker/start.sh"]
\ No newline at end of file
diff --git a/public/ng/css/gogs.css b/public/ng/css/gogs.css
index 4d23a82078..ca59d207f0 100644
--- a/public/ng/css/gogs.css
+++ b/public/ng/css/gogs.css
@@ -87,7 +87,7 @@ img.avatar-100 {
   height: 59px;
   z-index: 100;
   font-size: 12px;
-  width: 120%;
+  width: 170%;
   min-width: 140px;
 }
 #footer-lang .drop-down li > a {