mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-10-28 10:51:44 +01:00 
			
		
		
		
	Merge pull request #270 from artemklevtsov/docker-alpine
Add docker alpine image
This commit is contained in:
		
						commit
						99814b468b
					
				
							
								
								
									
										64
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										64
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							@ -157,3 +157,67 @@ jobs:
 | 
			
		||||
        run: |
 | 
			
		||||
          rm -rf /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