mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-10-28 10:51:44 +01:00 
			
		
		
		
	Improve Dockerfile
This commit makes several changes to the dockerfile: - Add go.mod and go.sum in a seperate stage, subsequently calling `go mod download` to make it cache dependencies and speed up builds - Use ubuntu:latest (28MB larger) instead of scratch, makes the image a lot easier to debug (e.g. it has a shell and a package manager) - Change ENTRYPOINT to CMD, this makes the behaviour of the image slightly different from a CLI perspective, but makes interacting with the image from code, docker-compose and kubernetes easier.
This commit is contained in:
		
							parent
							
								
									d86123195c
								
							
						
					
					
						commit
						a43bb1bb40
					
				
							
								
								
									
										15
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								Dockerfile
									
									
									
									
									
								
							@ -1,12 +1,19 @@
 | 
				
			|||||||
FROM golang:latest AS build
 | 
					FROM golang:latest AS build
 | 
				
			||||||
ENV GOPATH /go
 | 
					ENV GOPATH /go
 | 
				
			||||||
COPY . /go/src/headscale
 | 
					
 | 
				
			||||||
 | 
					COPY go.mod go.sum /go/src/headscale/
 | 
				
			||||||
WORKDIR /go/src/headscale
 | 
					WORKDIR /go/src/headscale
 | 
				
			||||||
 | 
					RUN go mod download
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPY . /go/src/headscale
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN go install -a -ldflags="-extldflags=-static" -tags netgo,sqlite_omit_load_extension ./cmd/headscale
 | 
					RUN go install -a -ldflags="-extldflags=-static" -tags netgo,sqlite_omit_load_extension ./cmd/headscale
 | 
				
			||||||
RUN test -e /go/bin/headscale
 | 
					RUN test -e /go/bin/headscale
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FROM scratch
 | 
					FROM ubuntu:latest
 | 
				
			||||||
COPY --from=build /go/bin/headscale /go/bin/headscale
 | 
					
 | 
				
			||||||
 | 
					COPY --from=build /go/bin/headscale /usr/local/bin/headscale
 | 
				
			||||||
ENV TZ UTC
 | 
					ENV TZ UTC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
EXPOSE 8080/tcp
 | 
					EXPOSE 8080/tcp
 | 
				
			||||||
ENTRYPOINT ["/go/bin/headscale"]
 | 
					CMD ["headscale"]
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user