From 9992e254d50cf8fe86c275d1511d3ea6d3e36b99 Mon Sep 17 00:00:00 2001 From: d3m0k1d Date: Fri, 3 Apr 2026 19:43:13 +0300 Subject: [PATCH] chore: write dockerfiles for agent and backend --- agent/dockerfile | 26 ++++++++++++++++++++++++++ backend/dockerfile | 24 ++++++++++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/agent/dockerfile b/agent/dockerfile index e69de29..73acc13 100644 --- a/agent/dockerfile +++ b/agent/dockerfile @@ -0,0 +1,26 @@ +FROM golang:1.26.1 as builder + +WORKDIR /app + +COPY go.mod go.sum ./ +RUN --mount=type=cache,target=/go/pkg/mod \ + --mount=type=cache,target=/root/.cache/go-build \ + go mod download + +COPY . . +ENV CGO_ENABLED=0 +RUN --mount=type=cache,target=/go/pkg/mod \ + --mount=type=cache,target=/root/.cache/go-build \ + go build -ldflags "-s -w" -o agent ./cmd/main.go + +FROM debian:bookworm-slim + +RUN apt-get update && apt-get install -y --no-install-recommends \ + systemd \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /app + +COPY --from=builder /app/agent . + +CMD ["./agent"] diff --git a/backend/dockerfile b/backend/dockerfile index e69de29..2d24bc4 100644 --- a/backend/dockerfile +++ b/backend/dockerfile @@ -0,0 +1,24 @@ +FROM golang:1.26.1 as builder + +WORKDIR /app + +COPY . . +ENV CGO_ENABLED=0 +ENV GIN_MODE=release +RUN --mount=type=cache,target=/go/pkg/mod \ + --mount=type=cache,target=/root/.cache/go-build \ + go mod download && \ + go build -ldflags "-s -w" -o backend ./cmd/main.go + +FROM alpine:3.23.0 + +RUN apk add --no-cache curl openssl bash + +COPY --from=builder /app/backend . +COPY --from=builder /app/scripts /etc/mnemosyne/scripts +RUN chmod +x /etc/mnemosyne/scripts/generate-certs.sh + +EXPOSE 8080 +HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 CMD [ "curl --fail http://localhost:8080/health" ] + +CMD ["./backend"]