added deployment via docker compose
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
FROM docker.io/rust:1-slim-bookworm AS build
|
||||
|
||||
## cargo package name: customize here or provide via --build-arg
|
||||
ARG pkg=backend
|
||||
ARG DATABASE_URL
|
||||
|
||||
WORKDIR /build
|
||||
|
||||
COPY .cargo .cargo
|
||||
COPY cdn cdn
|
||||
COPY src src
|
||||
COPY Cargo.toml Cargo.toml
|
||||
COPY Rocket.toml Rocket.toml
|
||||
COPY static static
|
||||
COPY templates templates
|
||||
|
||||
RUN apt-get update && apt-get install -y libssl-dev pkg-config
|
||||
|
||||
RUN --mount=type=cache,target=/build/target \
|
||||
--mount=type=cache,target=/usr/local/cargo/registry \
|
||||
--mount=type=cache,target=/usr/local/cargo/git \
|
||||
set -eux; \
|
||||
cargo build --release; \
|
||||
objcopy --compress-debug-sections target/release/$pkg ./main
|
||||
|
||||
################################################################################
|
||||
|
||||
FROM docker.io/debian:bookworm-slim
|
||||
|
||||
RUN apt-get update && apt-get install -y libssl-dev pkg-config
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
## copy the main binary
|
||||
COPY --from=build /build/main ./
|
||||
|
||||
## copy runtime assets which may or may not exist
|
||||
COPY --from=build /build/Rocket.toml ./Rocket.toml
|
||||
COPY --from=build /build/static ./static
|
||||
COPY --from=build /build/cdn ./cdn
|
||||
COPY --from=build /build/template[s] ./templates
|
||||
|
||||
## ensure the container listens globally on port 8000
|
||||
ENV ROCKET_ADDRESS=0.0.0.0
|
||||
ENV ROCKET_PORT=8000
|
||||
|
||||
CMD ./main
|
||||
Reference in New Issue
Block a user