############################
# 1)  Go‑Build
############################
FROM golang:1.23.1 AS build

WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 go build -o /blog ./cmd/blog


############################
# 2)  Content‑Clone (Stage)
############################
FROM alpine/git AS content

# Parameterisierbar beim docker build --build-arg …
ARG CONTENT_REPO=https://git.send.nrw/b1tsblog/blogcontent.git
ARG CONTENT_REF=main

RUN git clone --depth 1 --branch ${CONTENT_REF} ${CONTENT_REPO} /src

# ─── Repack:  bring alles in eine saubere Struktur ────────────────
#  • Markdown‑Posts:        /articles/*.md        → /out/content
#  • Bilder + CSS + JS:     /static/**/*          → /out/static
#  • statische Seiten:      /pages/*              → /out/pages
#  (Pfad‑Anpassung hier nach DEINEM Repository‑Layout)

RUN mkdir -p /out/content /out/static /out/pages
RUN find /src/articles -name '*.md' -exec cp {} /out/content/ \;
RUN cp -r /src/static/* /out/static/
RUN cp -r /src/pages/* /out/pages/


############################
# 3)  Runtime‑Image
############################
FROM debian:bookworm-slim

# (optional) MySQL‑Client für später
RUN apt-get update && apt-get install -y --no-install-recommends \
      ca-certificates \
      && rm -rf /var/lib/apt/lists/*

# ─── Binärdatei ─────
COPY --from=build /blog /usr/local/bin/blog

# ─── Content + Assets ───
RUN mkdir -p /content /static /pages /app
COPY . /app
COPY --from=content /out/content /content
COPY --from=content /out/static  /static
COPY --from=content /out/pages  /pages

ENV BLOG_CONTENT_DIR=/content
ENV BLOG_STATIC_DIR=/static
ENV BLOG_PAGES_DIR=/pages

EXPOSE 8080
CMD ["blog"]
