40 lines
898 B
Docker

FROM rust:1.83-bookworm AS builder
RUN rustup target add wasm32-unknown-unknown \
&& cargo install dioxus-cli diesel_cli \
&& apt-get update && apt-get install -y --no-install-recommends \
nodejs=18.19.0+dfsg-6~deb12u2 \
npm=9.2.0~ds1-1 \
supervisor=4.2.5-1 \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
COPY . /srv/app
WORKDIR /srv/app
RUN npm install \
&& npm run build \
&& dx build --release
FROM debian:bookworm-slim AS runner
RUN apt-get update \
&& apt-get install -y --no-install-recommends libpq5=15.8-0+deb12u1 \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
COPY --from=builder /srv/app/target/dx/todo-baggins/release/web /srv/app
COPY .env /srv/app/.env
RUN chown -R 1000:1000 /srv/app
WORKDIR /srv/app
HEALTHCHECK CMD curl --fail -H "Accept: text/html" http://localhost || exit 1
USER 1000:1000
ENV IP="0.0.0.0"
ENV PORT="80"
CMD ["./server"]