#1521 reduce Docker image size
This commit is contained in:
		
							parent
							
								
									c256fc4438
								
							
						
					
					
						commit
						be90ea583a
					
				
					 3 changed files with 53 additions and 26 deletions
				
			
		
							
								
								
									
										12
									
								
								.dockerignore
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								.dockerignore
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,12 @@
 | 
			
		|||
.git/*
 | 
			
		||||
conf/*
 | 
			
		||||
packager/*
 | 
			
		||||
scripts/*
 | 
			
		||||
*.yml
 | 
			
		||||
*.md
 | 
			
		||||
.bra.toml
 | 
			
		||||
.editorconfig
 | 
			
		||||
.gitignore
 | 
			
		||||
.gopmfile
 | 
			
		||||
config.codekit
 | 
			
		||||
LICENSE
 | 
			
		||||
							
								
								
									
										65
									
								
								Dockerfile
									
										
									
									
									
								
							
							
						
						
									
										65
									
								
								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"]
 | 
			
		||||
| 
						 | 
				
			
			@ -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 {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue