chore: Dockerize
This commit is contained in:
2
.dockerignore
Normal file
2
.dockerignore
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
/target
|
||||||
|
.history/
|
||||||
35
Dockerfile
Normal file
35
Dockerfile
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
ARG RUST_TAG=1.94.1-alpine3.23
|
||||||
|
FROM rust:${RUST_TAG} AS builder
|
||||||
|
|
||||||
|
ARG BUILD_BASE_VERSION=0.5-r3
|
||||||
|
RUN --mount=type=cache,sharing=locked,target=/var/cache/apk \
|
||||||
|
apk add --update build-base=${BUILD_BASE_VERSION}
|
||||||
|
|
||||||
|
ARG CMAKE_VERSION=4.1.3-r0
|
||||||
|
RUN --mount=type=cache,sharing=locked,target=/var/cache/apk \
|
||||||
|
apk add --update cmake=${CMAKE_VERSION}
|
||||||
|
|
||||||
|
ARG PROTOC_VERSION=31.1-r1
|
||||||
|
RUN --mount=type=cache,sharing=locked,target=/var/cache/apk \
|
||||||
|
apk add --update protoc=${PROTOC_VERSION}
|
||||||
|
|
||||||
|
RUN \
|
||||||
|
# This one would be nice if it worked:
|
||||||
|
# --mount=type=bind,source=.,target=/root/app \
|
||||||
|
# Use this one if there's a hard to track down "read-only filesystem" error:
|
||||||
|
--mount=type=bind,source=.,target=/root/app,rw \
|
||||||
|
|
||||||
|
# --mount=type=bind,source=./target,target=/root/app/target,rw \
|
||||||
|
--mount=type=cache,sharing=private,target=/root/app/target \
|
||||||
|
# --mount=type=cache,sharing=private,target=/root/app/target,uid=1000,gid=1000 \
|
||||||
|
--mount=type=cache,target=/usr/local/cargo/git/db \
|
||||||
|
--mount=type=cache,target=/usr/local/cargo/registry/ \
|
||||||
|
cd /root/app && \
|
||||||
|
cargo build --release && \
|
||||||
|
cp target/release/fomo-reducer /root/program
|
||||||
|
|
||||||
|
FROM scratch AS runner
|
||||||
|
|
||||||
|
COPY --from=builder /root/program /program
|
||||||
|
|
||||||
|
ENTRYPOINT ["/program"]
|
||||||
Reference in New Issue
Block a user