From 63c6031d6679e19756c3eef28d5d50468b85ff5f Mon Sep 17 00:00:00 2001 From: Tamas Gal Date: Thu, 16 Oct 2025 15:12:54 +0200 Subject: [PATCH] Add Backend Dockerfile and workflow --- .../feedmee-test-backend-build-docker.yaml | 33 +++++++++++++++++++ backend/Dockerfile | 32 ++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 .gitea/workflows/feedmee-test-backend-build-docker.yaml create mode 100644 backend/Dockerfile diff --git a/.gitea/workflows/feedmee-test-backend-build-docker.yaml b/.gitea/workflows/feedmee-test-backend-build-docker.yaml new file mode 100644 index 0000000..1e3e924 --- /dev/null +++ b/.gitea/workflows/feedmee-test-backend-build-docker.yaml @@ -0,0 +1,33 @@ +name: Build Feedmee Go Backend App + +defaults: + run: + working-directory: ./backend + +on: + push: + branches: + - main + +jobs: + build-and-push: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Log in to Gitea Container Registry + uses: docker/login-action@v3 + with: + registry: ${{vars.REGISTRY_URL}} + username: ${{vars.ACTOR}} + password: ${{secrets.TOKEN}} + + - name: Build Docker image + run: | + docker build -f Dockerfile -t ${{vars.REGISTRY_URL}}/${{github.repository}}-backend-test:latest . + + - name: Push Docker image + run: | + docker push ${{vars.REGISTRY_URL}}/${{github.repository}}-backend-test:latest diff --git a/backend/Dockerfile b/backend/Dockerfile new file mode 100644 index 0000000..f744db1 --- /dev/null +++ b/backend/Dockerfile @@ -0,0 +1,32 @@ +# --- BUILD STAGE --- +FROM golang:1.25.0 AS builder +WORKDIR /app +COPY go.mod go.sum ./ +RUN go mod download +COPY . . + +# Fontos: CGO_ENABLED=0 a statikusan linkelt binárisért, ami kompatibilis lesz az Alpine alapú futtatási környezettel. +RUN CGO_ENABLED=0 GOOS=linux go build -a -ldflags="-s -w" -o backend . + + +FROM alpine:latest + +WORKDIR /root/ +COPY --from=builder /app/backend . + +# Ha a Go alkalmazásodnak szüksége van SSL tanúsítványokra (pl. HTTPS hívásokhoz külső API-k felé), akkor az Alpine image-be telepíteni kell a ca-certificates csomagot. +# A CGO_ENABLED=0 miatt elvileg a Go beépített gyökér tanúsítványtárát használja, de biztonságosabb a rendszer ca-certificates csomagját is felrakni. +# Ezt csak akkor tedd meg, ha szükséges, és csak a futtatási stage-ben! +# RUN apk add --no-cache ca-certificates + +RUN apk add --no-cache tzdata +RUN cp /usr/share/zoneinfo/Europe/Budapest /etc/localtime +RUN echo "Europe/Budapest" > /etc/timezone + +ENV TZ="Europe/Budapest" +ENV LANG="hu_HU.UTF-8" +ENV LANGUAGE="hu_HU.UTF-8" +ENV LC_ALL="hu_HU.UTF-8" + +EXPOSE 7153 +CMD ["./backend"] \ No newline at end of file