From be90ea583a3d65566be8bfbf3440cf0c20557972 Mon Sep 17 00:00:00 2001 From: Unknwon 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 00000000000..fe2ac6ec774 --- /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 baba8f19d32..9186a471162 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 4d23a820780..ca59d207f03 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 {