FROM golang:1.25-alpine as build_go
RUN apk add --no-cache curl

WORKDIR /app

COPY go.mod go.sum ./
RUN go mod download

COPY . .

RUN go install github.com/a-h/templ/cmd/templ@latest

RUN templ generate

RUN go build -o main cmd/main.go

# Stage 2, distribution container
FROM golang:1.25-alpine
EXPOSE 8080
VOLUME /sorted
VOLUME /frontend
VOLUME /characters

ENV PORT 8080
ENV DB_HOST ""
ENV DB_PORT ""
ENV DB_USERNAME ""
ENV DB_PASSWORD ""
ENV DB_NAME ""
ENV MUSIC_PATH ""
ENV CHARACTERS_PATH ""

COPY --from=build_go /app/main .
COPY ./songs/ ./songs/

CMD ./main
