From ff832df72129070aa171744d476330fd98db15a0 Mon Sep 17 00:00:00 2001 From: "Dustin C. Hatch" Date: Sat, 8 Mar 2025 21:15:16 -0600 Subject: [PATCH] Add container image build script --- .containerignore | 5 +++++ Containerfile | 49 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 .containerignore create mode 100644 Containerfile diff --git a/.containerignore b/.containerignore new file mode 100644 index 0000000..faf4558 --- /dev/null +++ b/.containerignore @@ -0,0 +1,5 @@ +* +!Cargo.* +!js/ +!src/ +!templates/ diff --git a/Containerfile b/Containerfile new file mode 100644 index 0000000..ed5efd1 --- /dev/null +++ b/Containerfile @@ -0,0 +1,49 @@ +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 \ + cargo \ + openssl-devel \ + && : + +WORKDIR /build + +COPY Cargo.* . + +COPY src src + +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 + +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"] + +CMD ["/etc/receipts/config.toml"]