Actix-Demo/build.Dockerfile
Rohan Sircar 565e6bc5e4 Changes to ci
instead of docker layer caching, build binary in runner itself and copy
binary to dockerfile
old Dockerfile is now build.Dockerfile whereas new one is ci.Dockerfile
caching docker layers was taking more time than building the image from
 scratch
 add powerpc build (for the 100th time) but without cross in it's own
 job
2021-04-24 22:46:11 +05:30

43 lines
927 B
Docker

FROM rust:1.51 as builder
# ENV CARGO_HOME=/actix-demo/.cargo
RUN USER=root cargo new --bin actix-demo
WORKDIR /actix-demo
# COPY ./.cargo ./.cargo
COPY ./Cargo.toml ./Cargo.toml
COPY ./Cargo.lock ./Cargo.lock
RUN cargo build --release
RUN rm -r src/*.rs
COPY ./src ./src
RUN rm ./target/release/deps/actix_demo*
RUN cargo build --release
FROM debian:buster-slim
ARG APP=/usr/src/app
RUN apt-get update \
&& apt-get install -y ca-certificates tzdata \
&& rm -rf /var/lib/apt/lists/*
EXPOSE 8000
ENV TZ=Etc/UTC \
APP_USER=appuser
RUN groupadd $APP_USER \
&& useradd -g $APP_USER $APP_USER \
&& mkdir -p ${APP}
COPY ./.env ${APP}/.env
COPY ./migrations ${APP}/migrations
COPY ./static ${APP}/static
COPY ./db/empty.db ${APP}/app.db
COPY --from=builder /actix-demo/target/release/actix-demo ${APP}/actix-demo
RUN chown -R $APP_USER:$APP_USER ${APP}
USER $APP_USER
WORKDIR ${APP}
CMD ["./actix-demo"]