mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-10-28 10:51:44 +01:00 
			
		
		
		
	Add docker alpine image
This commit is contained in:
		
							parent
							
								
									26623d794b
								
							
						
					
					
						commit
						1b6bad0b63
					
				
							
								
								
									
										64
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										64
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							@ -157,3 +157,67 @@ jobs:
 | 
				
			|||||||
        run: |
 | 
					        run: |
 | 
				
			||||||
          rm -rf /tmp/.buildx-cache-debug
 | 
					          rm -rf /tmp/.buildx-cache-debug
 | 
				
			||||||
          mv /tmp/.buildx-cache-debug-new /tmp/.buildx-cache-debug
 | 
					          mv /tmp/.buildx-cache-debug-new /tmp/.buildx-cache-debug
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  docker-alpine-release:
 | 
				
			||||||
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      - name: Checkout
 | 
				
			||||||
 | 
					        uses: actions/checkout@v2
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          fetch-depth: 0
 | 
				
			||||||
 | 
					      - name: Set up Docker Buildx
 | 
				
			||||||
 | 
					        uses: docker/setup-buildx-action@v1
 | 
				
			||||||
 | 
					      - name: Set up QEMU for multiple platforms
 | 
				
			||||||
 | 
					        uses: docker/setup-qemu-action@master
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          platforms: arm64,amd64
 | 
				
			||||||
 | 
					      - name: Cache Docker layers
 | 
				
			||||||
 | 
					        uses: actions/cache@v2
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          path: /tmp/.buildx-cache-alpine
 | 
				
			||||||
 | 
					          key: ${{ runner.os }}-buildx-alpine-${{ github.sha }}
 | 
				
			||||||
 | 
					          restore-keys: |
 | 
				
			||||||
 | 
					            ${{ runner.os }}-buildx-alpine-
 | 
				
			||||||
 | 
					      - name: Docker meta
 | 
				
			||||||
 | 
					        id: meta-alpine
 | 
				
			||||||
 | 
					        uses: docker/metadata-action@v3
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          # list of Docker images to use as base name for tags
 | 
				
			||||||
 | 
					          images: |
 | 
				
			||||||
 | 
					            ${{ secrets.DOCKERHUB_USERNAME }}/headscale
 | 
				
			||||||
 | 
					            ghcr.io/${{ github.repository_owner }}/headscale
 | 
				
			||||||
 | 
					          flavor: |
 | 
				
			||||||
 | 
					            latest=false
 | 
				
			||||||
 | 
					          tags: |
 | 
				
			||||||
 | 
					            type=semver,pattern={{version}}-alpine
 | 
				
			||||||
 | 
					            type=semver,pattern={{major}}.{{minor}}-alpine
 | 
				
			||||||
 | 
					            type=semver,pattern={{major}}-alpine
 | 
				
			||||||
 | 
					            type=raw,value=latest-alpine
 | 
				
			||||||
 | 
					            type=sha,suffix=-alpine
 | 
				
			||||||
 | 
					      - name: Login to DockerHub
 | 
				
			||||||
 | 
					        uses: docker/login-action@v1
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          username: ${{ secrets.DOCKERHUB_USERNAME }}
 | 
				
			||||||
 | 
					          password: ${{ secrets.DOCKERHUB_TOKEN }}
 | 
				
			||||||
 | 
					      - name: Login to GHCR
 | 
				
			||||||
 | 
					        uses: docker/login-action@v1
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          registry: ghcr.io
 | 
				
			||||||
 | 
					          username: ${{ github.repository_owner }}
 | 
				
			||||||
 | 
					          password: ${{ secrets.GITHUB_TOKEN }}
 | 
				
			||||||
 | 
					      - name: Build and push
 | 
				
			||||||
 | 
					        id: docker_build
 | 
				
			||||||
 | 
					        uses: docker/build-push-action@v2
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          push: true
 | 
				
			||||||
 | 
					          context: .
 | 
				
			||||||
 | 
					          file: Dockerfile.alpine
 | 
				
			||||||
 | 
					          tags: ${{ steps.meta-alpine.outputs.tags }}
 | 
				
			||||||
 | 
					          labels: ${{ steps.meta-alpine.outputs.labels }}
 | 
				
			||||||
 | 
					          platforms: linux/amd64,linux/arm64
 | 
				
			||||||
 | 
					          cache-from: type=local,src=/tmp/.buildx-cache-alpine
 | 
				
			||||||
 | 
					          cache-to: type=local,dest=/tmp/.buildx-cache-alpine-new
 | 
				
			||||||
 | 
					      - name: Prepare cache for next build
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          rm -rf /tmp/.buildx-cache-alpine
 | 
				
			||||||
 | 
					          mv /tmp/.buildx-cache-alpine-new /tmp/.buildx-cache-alpine
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										22
									
								
								Dockerfile.alpine
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								Dockerfile.alpine
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					# Builder image
 | 
				
			||||||
 | 
					FROM golang:1.17.1-alpine AS build
 | 
				
			||||||
 | 
					ENV GOPATH /go
 | 
				
			||||||
 | 
					WORKDIR /go/src/headscale
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPY go.mod go.sum /go/src/headscale/
 | 
				
			||||||
 | 
					RUN apk add gcc musl-dev
 | 
				
			||||||
 | 
					RUN go mod download
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPY . .
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUN go install -a -ldflags="-extldflags=-static" -tags netgo,sqlite_omit_load_extension ./cmd/headscale
 | 
				
			||||||
 | 
					RUN test -e /go/bin/headscale
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Production image
 | 
				
			||||||
 | 
					FROM alpine:latest
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPY --from=build /go/bin/headscale /bin/headscale
 | 
				
			||||||
 | 
					ENV TZ UTC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXPOSE 8080/tcp
 | 
				
			||||||
 | 
					CMD ["headscale"]
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user