63 lines
1.3 KiB
Docker
63 lines
1.3 KiB
Docker
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
|