mirror of
https://github.com/LowderPlay/cheburcheck.git
synced 2026-07-29 01:26:07 +00:00
46 lines
1.4 KiB
Docker
46 lines
1.4 KiB
Docker
# syntax=docker/dockerfile:1.10
|
|
|
|
FROM docker.io/rust:1-slim-bookworm AS build
|
|
|
|
WORKDIR /build
|
|
|
|
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
|
|
--mount=type=cache,target=/var/lib/apt,sharing=locked \
|
|
apt-get update && \
|
|
apt-get install -y --no-install-recommends ca-certificates libssl-dev pkg-config && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY . .
|
|
|
|
RUN --mount=type=cache,id=website-target,target=/build/target \
|
|
--mount=type=cache,id=cargo-registry,target=/usr/local/cargo/registry \
|
|
--mount=type=cache,id=cargo-git,target=/usr/local/cargo/git \
|
|
set -eux; \
|
|
RUSTFLAGS="-C strip=symbols" SQLX_OFFLINE=true cargo build --locked --release --package website; \
|
|
cp target/release/website ./main
|
|
|
|
FROM docker.io/debian:bookworm-slim
|
|
|
|
WORKDIR /app
|
|
|
|
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
|
|
--mount=type=cache,target=/var/lib/apt,sharing=locked \
|
|
apt-get update && \
|
|
apt-get install -y --no-install-recommends libssl3 ca-certificates curl && \
|
|
rm -rf /var/lib/apt/lists/* && \
|
|
groupadd --system app && \
|
|
useradd --system --gid app --home-dir /app --shell /usr/sbin/nologin app && \
|
|
mkdir -p /var/cache/cheburcheck/databases && \
|
|
chown -R app:app /var/cache/cheburcheck
|
|
|
|
COPY --from=build /build/website/Rocket.toml ./
|
|
COPY --from=build /build/main ./
|
|
|
|
ENV ROCKET_ADDRESS=::
|
|
ENV ROCKET_PORT=8000
|
|
|
|
EXPOSE 8000
|
|
|
|
USER app
|
|
|
|
CMD ["./main"]
|