Something went wrong. Try again.
Source code for my personal quote bot project.
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859# syntax=docker/dockerfile:1
# Comments are provided throughout this file to help you get started.# If you need more help, visit the Dockerfile reference guide at# https://docs.docker.com/reference/dockerfile/
################################################################################# Create a stage for building the application.
ARG RUST_VERSION=1.93ARG APP_NAME=audquotesFROM rust:${RUST_VERSION}-trixie AS buildWORKDIR /app
# Build the application.# Leverage a cache mount to /usr/local/cargo/registry/# for downloaded dependencies and a cache mount to /app/target/ for# compiled dependencies which will speed up subsequent builds.# Leverage a bind mount to the src directory to avoid having to copy the# source code into the container. Once built, copy the executable to an# output directory before the cache mounted /app/target is unmounted.RUN --mount=type=bind,source=src,target=src \ --mount=type=bind,source=quotes,target=quotes \ --mount=type=bind,source=Cargo.toml,target=Cargo.toml \ --mount=type=bind,source=Cargo.lock,target=Cargo.lock \ --mount=type=cache,target=/app/target/ \ --mount=type=cache,target=/usr/local/cargo/registry/ \ <<EOFset -ecargo build --locked --releasecp ./target/release/audquotes /bin/servercp -r ./quotes /bin/quotesEOF
################################################################################# Create a new stage for running the application that contains the minimal# runtime dependencies for the application. This often uses a different base# image from the build stage where the necessary files are copied from the build# stage.## The example below uses the debian bullseye image as the foundation for running the app.# By specifying the "bullseye-slim" tag, it will also use whatever happens to be the# most recent version of that tag when you build your Dockerfile. If# reproducibility is important, consider using a digest# (e.g., debian@sha256:ac707220fbd7b67fc19b112cee8170b41a9e97f703f588b2cdbbcdcecdd8af57).FROM debian:trixie AS final
RUN apt update && apt upgrade -y && apt install -y openssl ca-certificates
# Copy the executable from the "build" stage.COPY --from=build /bin/server /bin/COPY --from=build /bin/quotes /quotes
ENV USE_BLUESKY=1ENV USE_REDIS=1
# What the container should run when it is started.CMD ["/bin/server"]