parent
0c23dbd12b
commit
4ccec8ce22
@ -0,0 +1,45 @@
|
|||||||
|
name: Build docker containers
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- "v*"
|
||||||
|
jobs:
|
||||||
|
release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
packages: write
|
||||||
|
env:
|
||||||
|
IMAGE_NAME: ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}
|
||||||
|
VERSION: ${{ github.ref_name }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Login to GHCR
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
registry: ghcr.io
|
||||||
|
username: ${{ github.actor }}
|
||||||
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
# Build per-arch images
|
||||||
|
- name: Build amd64 image
|
||||||
|
run: |
|
||||||
|
docker build -t ${IMAGE_NAME}:${VERSION}-amd64 -f Dockerfile --build-arg ARCH=amd64 .
|
||||||
|
- name: Build arm64 image
|
||||||
|
run: |
|
||||||
|
docker build -t ${IMAGE_NAME}:${VERSION}-arm64 -f Dockerfile --build-arg ARCH=arm64 .
|
||||||
|
- name: Push per-arch images
|
||||||
|
run: |
|
||||||
|
docker push ${IMAGE_NAME}:${VERSION}-amd64
|
||||||
|
docker push ${IMAGE_NAME}:${VERSION}-arm64
|
||||||
|
# Create multi-arch manifest and push
|
||||||
|
- name: Push multi-arch manifest
|
||||||
|
run: |
|
||||||
|
docker manifest create ${IMAGE_NAME}:${VERSION} \
|
||||||
|
--amend ${IMAGE_NAME}:${VERSION}-amd64 \
|
||||||
|
--amend ${IMAGE_NAME}:${VERSION}-arm64
|
||||||
|
docker manifest push ${IMAGE_NAME}:${VERSION}
|
||||||
|
- name: Tag as latest
|
||||||
|
run: |
|
||||||
|
docker manifest create ${IMAGE_NAME}:latest \
|
||||||
|
--amend ${IMAGE_NAME}:${VERSION}-amd64 \
|
||||||
|
--amend ${IMAGE_NAME}:${VERSION}-arm64
|
||||||
|
docker manifest push ${IMAGE_NAME}:latest
|
||||||
@ -1,11 +1,10 @@
|
|||||||
FROM golang:1.24-alpine
|
FROM golang:1.24-alpine AS build
|
||||||
|
ARG ARCH=amd64
|
||||||
WORKDIR /app
|
WORKDIR /build
|
||||||
|
|
||||||
COPY main.go .
|
COPY main.go .
|
||||||
|
RUN CGO_ENABLED=0 GOOS=linux GOARCH=${ARCH} go build -o seadex-proxy main.go
|
||||||
|
|
||||||
RUN go build -o app main.go
|
FROM scratch
|
||||||
|
COPY --from=build /build/seadex-proxy /seadex-proxy
|
||||||
|
ENTRYPOINT ["/seadex-proxy"]
|
||||||
EXPOSE 6778
|
EXPOSE 6778
|
||||||
|
|
||||||
CMD ["./app"]
|
|
||||||
Loading…
Reference in new issue