From 7f01b76fdc8e7ff4e2d3b8d24a91ffbb58570068 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20BUISSON?= Date: Thu, 25 Jan 2024 16:52:09 +0100 Subject: [PATCH] feat: publish api-server to ghcr.io (#37) * feat: publish api-server to ghcr.io * fix --- .github/workflows/api-server.yaml | 56 +++++++++++++++++++++++++++++++ api-server/Dockerfile | 15 ++++++--- 2 files changed, 67 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/api-server.yaml diff --git a/.github/workflows/api-server.yaml b/.github/workflows/api-server.yaml new file mode 100644 index 0000000..9e7ec81 --- /dev/null +++ b/.github/workflows/api-server.yaml @@ -0,0 +1,56 @@ +name: 🚀 Build/Release docker api-server +on: + workflow_dispatch: + pull_request: + branches: + - master + paths: + - '.github/workflow/api-server.yaml' + - 'api-server/**' + push: + branches: + - master + paths: + - '.github/workflow/api-server.yaml' + - 'api-server/**' + tags: + - 'api-server_v[0-9]+.[0-9]+.[0-9]+' +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +env: + REGISTRY: ghcr.io +jobs: + docker-build: + runs-on: ubuntu-latest + steps: + - name: checkout + uses: actions/checkout@v4 + - name: docker login + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: set up buildx + uses: docker/setup-buildx-action@v3 + - name: docker meta + id: meta + uses: docker/metadata-action@v5 + with: + images: | + ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ github.repository }} + tags: | + type=raw,value=latest,enable={{is_default_branch}} + type=match,pattern=api-server_v\d+.\d+.\d+ + type=raw,value={{branch}}-{{sha}}-{{date 'X'}},enable={{is_default_branch}} + type=ref,event=pr + - name: build docker images + uses: docker/build-push-action@v5 + with: + context: "{{defaultContext}}:api-server" + file: Dockerfile + platforms: linux/amd64,linux/arm64 + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} diff --git a/api-server/Dockerfile b/api-server/Dockerfile index 244ad26..cc5f055 100644 --- a/api-server/Dockerfile +++ b/api-server/Dockerfile @@ -1,12 +1,19 @@ -# syntax=docker/dockerfile:1.2 -# Alpine +# syntax=docker/dockerfile:1.6 + +# golang builder +FROM golang:1.21 as builder +WORKDIR /usr/local/src/ +COPY . /usr/local/src/ +RUN make build + +# docker image FROM alpine -RUN apk --no-cache --no-progress add ca-certificates tzdata git \ +RUN apk --no-cache --no-progress add ca-certificates tzdata \ && rm -rf /var/cache/apk/* ARG TARGETPLATFORM -COPY ./dist/$TARGETPLATFORM/api-server / +COPY --from=builder /usr/local/src/dist/$TARGETPLATFORM/api-server / ENTRYPOINT ["/api-server"] EXPOSE 3000