just throwin there
This commit is contained in:
commit
278d7cf05d
1 changed files with 5712 additions and 0 deletions
65
Containerfile
Normal file
65
Containerfile
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
FROM source.spushk.ru/rustyworks/rust-alpine-mimalloc:1.95 as build
|
||||
WORKDIR /build
|
||||
ENV OPENSSL_DIR=/usr
|
||||
ENV TARGET_CC=x86_64-linux-musl-clang
|
||||
ENV CARGO_BUILD_TARGET=x86_64-unknown-linux-musl
|
||||
COPY .cargo .cargo
|
||||
COPY rust-toolchain.toml rust-toolchain.toml
|
||||
RUN --mount=type=secret,id=cargo-token \
|
||||
--mount=type=cache,target=/usr/local/rustup,id=rustup_cache \
|
||||
cat /run/secrets/cargo-token | cargo login --quiet --registry Technologygeek
|
||||
|
||||
FROM build as planner
|
||||
WORKDIR /build
|
||||
COPY . .
|
||||
RUN --mount=type=cache,target=/usr/local/cargo/registry,id=cargo_registry \
|
||||
--mount=type=cache,target=/usr/local/rustup,id=rustup_cache \
|
||||
cargo chef prepare --recipe-path=recipe.json
|
||||
|
||||
FROM build as build-debug
|
||||
WORKDIR /build
|
||||
COPY --from=planner /build/recipe.json recipe.json
|
||||
RUN --mount=type=cache,target=/usr/local/cargo/registry,id=cargo_registry \
|
||||
--mount=type=cache,target=/usr/local/rustup,id=rustup_cache \
|
||||
cargo --config=.cargo/container_debug.toml \
|
||||
chef cook --recipe-path=recipe.json
|
||||
COPY . .
|
||||
RUN --mount=type=cache,target=/usr/local/cargo/registry,id=cargo_registry \
|
||||
--mount=type=cache,target=/usr/local/rustup,id=rustup_cache \
|
||||
cargo --config=.cargo/container_debug.toml \
|
||||
test
|
||||
RUN --mount=type=cache,target=/usr/local/cargo/registry,id=cargo_registry \
|
||||
--mount=type=cache,target=/usr/local/rustup,id=rustup_cache \
|
||||
cargo --config=.cargo/container_debug.toml \
|
||||
build
|
||||
|
||||
FROM build as build-release
|
||||
WORKDIR /build
|
||||
COPY --from=planner /build/recipe.json recipe.json
|
||||
RUN --mount=type=cache,target=/usr/local/cargo/registry,id=cargo_registry \
|
||||
--mount=type=cache,target=/usr/local/rustup,id=rustup_cache \
|
||||
cargo --config=.cargo/container_release.toml \
|
||||
chef cook --release --recipe-path=recipe.json
|
||||
COPY . .
|
||||
RUN --mount=type=cache,target=/usr/local/cargo/registry,id=cargo_registry \
|
||||
--mount=type=cache,target=/usr/local/rustup,id=rustup_cache \
|
||||
cargo --config=.cargo/container_release.toml \
|
||||
build --release
|
||||
|
||||
FROM scratch as app
|
||||
WORKDIR /
|
||||
VOLUME /adsbot.db
|
||||
VOLUME /adsbot.log
|
||||
EXPOSE 3000
|
||||
|
||||
FROM app as app-debug
|
||||
WORKDIR /
|
||||
COPY --from=build-debug /build/target/x86_64-unknown-linux-musl/debug/adsbot /adsbot
|
||||
ENV RUST_LOG="debug"
|
||||
ENTRYPOINT [ "/adsbot" ]
|
||||
|
||||
FROM app as app-release
|
||||
WORKDIR /
|
||||
COPY --from=build-release /build/target/x86_64-unknown-linux-musl/release/adsbot /adsbot
|
||||
ENV RUST_LOG="info"
|
||||
ENTRYPOINT [ "/adsbot" ]
|
||||
Loading…
Reference in a new issue