mirror of
https://github.com/lennart-k/rustical.git
synced 2025-12-14 00:02:20 +00:00
Add Dockerfile
This commit is contained in:
28
Dockerfile
Normal file
28
Dockerfile
Normal file
@@ -0,0 +1,28 @@
|
||||
FROM node:23-slim AS frontend-builder
|
||||
RUN corepack enable
|
||||
WORKDIR /frontend
|
||||
COPY crates/frontend/frontend/package.json /frontend/package.json
|
||||
RUN pnpm install
|
||||
COPY crates/frontend/frontend /frontend
|
||||
RUN pnpm build
|
||||
# Templates will be in /frontend/dist/templates
|
||||
# Assets will be in /frontend/dist/assets
|
||||
|
||||
|
||||
FROM rust:1.82-alpine AS builder
|
||||
# We need to statically link C dependencies like sqlite, otherwise we get
|
||||
# exec /usr/local/bin/rustical: no such file or directory
|
||||
# x86_64-unknown-linux-musl does static linking by default
|
||||
RUN apk add --no-progress build-base; \
|
||||
rustup target add x86_64-unknown-linux-musl
|
||||
WORKDIR /rustical
|
||||
COPY . .
|
||||
COPY --from=frontend-builder /frontend/dist crates/frontend/frontend/dist
|
||||
RUN --mount=type=cache,target=target cargo install --target x86_64-unknown-linux-musl --path .
|
||||
|
||||
FROM scratch
|
||||
COPY --from=builder /usr/local/cargo/bin/rustical /usr/local/bin/rustical
|
||||
CMD ["/usr/local/bin/rustical"]
|
||||
|
||||
LABEL org.opencontainers.image.authors="Lennart K github.com/lennart-k"
|
||||
EXPOSE 4000
|
||||
Reference in New Issue
Block a user