FROM golang:1.25.5-alpine AS build
ARG TARGETOS
ARG TARGETARCH
WORKDIR /app

RUN apk add --no-cache ca-certificates olm-dev build-base

COPY go.mod ./
RUN --mount=type=cache,target=/go/pkg/mod go mod download

COPY . .
RUN --mount=type=cache,target=/go/pkg/mod --mount=type=cache,target=/root/.cache/go-build CGO_ENABLED=1 GOOS=${TARGETOS:-linux} GOARCH=${TARGETARCH:-arm64} go build -o matrix-bot ./

FROM alpine:3.19
WORKDIR /app

RUN apk add --no-cache ca-certificates olm

RUN mkdir -p /data

COPY --from=build /app/matrix-bot /app/matrix-bot
COPY --from=build /app/sowpods.csv /app/sowpods.csv

VOLUME ["/data"]
ENV MATRIX_CRYPTO_DB=/data/crypto.db
ENV MATRIX_WORDLIST=/app/sowpods.csv

CMD ["/app/matrix-bot"]
