123456789101112131415161718192021222324252627282930 |
- FROM archlinux:base-devel AS build
- ARG BT_APP
- ARG BT_DEPENDS
- RUN pacman -Syu --noconfirm
- RUN pacman -S --noconfirm rustup clang $BT_DEPENDS
- RUN rustup toolchain install nightly
- RUN rustup default nightly
- RUN mkdir -p src/crates
- COPY ./crates /src/crates
- COPY Cargo.toml /src/
- COPY Cargo.lock /src/
- WORKDIR /src
- RUN cargo fetch --target x86_64-unknown-linux-gnu
- WORKDIR /src/crates/$BT_APP
- RUN cargo build --release
- FROM archlinux:base AS release
- ARG BT_APP
- ARG BT_DEPENDS
- ENV BT_APP=$BT_APP
- RUN pacman -Syu --noconfirm\
- && pacman -S --noconfirm $BT_DEPENDS\
- && pacman -Scc --noconfirm\
- && useradd $BT_APP \
- && mkdir -p /app/state\
- && chown $BT_APP:$BT_APP /app/state
- COPY --from=build /src/target/release/$BT_APP /app/app.bin
- USER $BT_APP
- WORKDIR /app
- ENTRYPOINT ["./app.bin"]
|