FROM git.pyrocufflink.net/containerimages/dch-base AS build RUN --mount=type=cache,target=/var/cache \ microdnf install -y \ --setopt persistdir=/var/cache/dnf \ --setopt install_weak_deps=0 \ GraphicsMagick-devel \ cargo \ clang-devel \ openssl-devel \ && : WORKDIR /build COPY Cargo.* . COPY src src COPY .sqlx .sqlx COPY migrations migrations COPY sql sql RUN --mount=type=cache,target=/root/.cargo \ cargo build --release --locked FROM git.pyrocufflink.net/containerimages/dch-base AS esbuild RUN --mount=type=cache,target=/var/cache \ microdnf install -y \ --setopt persistdir=/var/cache/dnf \ --setopt install_weak_deps=0 \ npm \ && : WORKDIR /build COPY js . RUN --mount=type=cache,target=/root/.cargo \ npm ci && npm run build FROM git.pyrocufflink.net/containerimages/dch-base RUN --mount=type=cache,target=/var/cache \ microdnf install -y \ --setopt persistdir=/var/cache/dnf \ --setopt install_weak_deps=0 \ GraphicsMagick \ clang-libs \ ghostscript \ && : COPY --from=build /build/target/release/receipts /usr/local/bin COPY --from=esbuild /build/dist /usr/local/share/receipts/static COPY templates /usr/local/share/receipts/templates WORKDIR /usr/local/share/receipts ENTRYPOINT ["/usr/local/bin/receipts"] ENV ROCKET_CONFIG=/etc/receipts/config.toml