Dockerfile 850 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. # syntax=docker/dockerfile:1.4
  2. FROM rust:buster AS base
  3. ENV USER=root
  4. ENV ROCKET_ADDRESS=0.0.0.0
  5. ENV ROCKET_ENV=development
  6. WORKDIR /code
  7. RUN cargo init
  8. COPY Cargo.toml /code/Cargo.toml
  9. RUN cargo fetch
  10. COPY . /code
  11. FROM base AS development
  12. EXPOSE 8000
  13. CMD [ "cargo", "run", "--offline" ]
  14. FROM base AS dev-envs
  15. EXPOSE 8000
  16. RUN <<EOF
  17. apt-get update
  18. apt-get install -y --no-install-recommends git
  19. EOF
  20. RUN <<EOF
  21. useradd -s /bin/bash -m vscode
  22. groupadd docker
  23. usermod -aG docker vscode
  24. EOF
  25. # install Docker tools (cli, buildx, compose)
  26. COPY --from=gloursdocker/docker / /
  27. CMD [ "cargo", "run", "--offline" ]
  28. FROM base AS builder
  29. RUN cargo build --release --offline
  30. FROM debian:buster-slim
  31. ENV ROCKET_ENV=production
  32. EXPOSE 8000
  33. COPY --from=builder /code/target/release/react-rust-postgres /react-rust-postgres
  34. CMD [ "/react-rust-postgres" ]