FROM rust:alpine AS builder
RUN apk add --no-cache musl-dev
WORKDIR /app
COPY code/Cargo.toml ./
RUN mkdir src && echo "fn main() {}" > src/main.rs && cargo build --release && rm -rf src
COPY code/src ./src
RUN cargo build --release

FROM alpine:latest
RUN apk add --no-cache \
    gnucobol \
    gcc \
    musl-dev \
    libgcc
COPY api.yaml /api.yaml
COPY src/ /src/
COPY --from=builder /app/target/release/rest-cobol /server
EXPOSE 8080
ENTRYPOINT ["/server"]