FROM alpine:3.21 AS build

RUN apk add --no-cache gcc musl-dev

WORKDIR /app
COPY . .
RUN gcc -o deployment deployment.c

FROM alpine:3.21

RUN adduser -D -u 1000 appuser

WORKDIR /app

RUN mkdir /output && chown appuser:appuser /output

COPY --from=build /app/deployment .
RUN chown appuser:appuser ./deployment

VOLUME ["/output"]

USER appuser

HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
  CMD test -f /output/output.txt || exit 1

CMD ["sh", "-c", "./deployment 10 > /output/output.txt"]