cheburcheck/website/Dockerfile
LowderPlay 7d11e14804
feat: change to ssr (#69)
* feat: change to ssr

* fix: move route to nginx

* fix: rename yaml

* ci: add deploy

* fix: real ip
2026-05-29 14:51:32 +05:00

44 lines
1.3 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
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"]