You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
932 B

3 years ago
3 years ago
3 years ago
  1. FROM rust:1.51 as builder
  2. # ENV CARGO_HOME=/actix-demo/.cargo
  3. RUN USER=root cargo new --bin actix-demo
  4. WORKDIR /actix-demo
  5. # COPY ./.cargo ./.cargo
  6. COPY ./Cargo.toml ./Cargo.toml
  7. COPY ./Cargo.lock ./Cargo.lock
  8. RUN cargo build --release
  9. RUN rm -r src/*.rs
  10. COPY ./src ./src
  11. RUN rm ./target/release/deps/actix_demo*
  12. RUN cargo build --release
  13. FROM debian:buster-slim
  14. ARG APP=/usr/src/app
  15. RUN apt-get update \
  16. && apt-get install -y ca-certificates tzdata \
  17. && rm -rf /var/lib/apt/lists/*
  18. EXPOSE 8000
  19. ENV TZ=Etc/UTC \
  20. APP_USER=appuser
  21. RUN groupadd $APP_USER \
  22. && useradd -g $APP_USER $APP_USER \
  23. && mkdir -p ${APP}
  24. COPY ./.env ${APP}/.env
  25. COPY ./migrations ${APP}/migrations
  26. COPY ./static ${APP}/static
  27. COPY ./db/empty.db ${APP}/data/app.db
  28. COPY --from=builder /actix-demo/target/release/actix-demo ${APP}/actix-demo
  29. RUN chown -R $APP_USER:$APP_USER ${APP}
  30. USER $APP_USER
  31. WORKDIR ${APP}
  32. CMD ["./actix-demo"]