FROM rust@sha256:a45bf1f5d9af0a23b26703b3500d70af1abff7f984a7abef5a104b42c02a292b AS builder RUN 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 \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* COPY . /srv/app WORKDIR /srv/app RUN npm install \ && npm run build \ && dx bundle FROM debian@sha256:b877a1a3fdf02469440f1768cf69c9771338a875b7add5e80c45b756c92ac20a 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"]