mirror of
https://github.com/lennart-k/rustical.git
synced 2025-12-13 08:52:16 +00:00
Add Dockerfile
This commit is contained in:
16
.dockerignore
Normal file
16
.dockerignore
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
target
|
||||||
|
crates/*/target
|
||||||
|
# For libraries ignore Cargo.lock
|
||||||
|
crates/*/Cargo.lock
|
||||||
|
|
||||||
|
db.toml
|
||||||
|
db.sqlite3*
|
||||||
|
config.toml
|
||||||
|
schema.sql
|
||||||
|
|
||||||
|
/.idea
|
||||||
|
|
||||||
|
.env
|
||||||
|
|
||||||
|
**/node_modules
|
||||||
|
**/dist
|
||||||
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
|
||||||
@@ -30,7 +30,7 @@ a calendar server
|
|||||||
- [ ] Restore endpoint
|
- [ ] Restore endpoint
|
||||||
- [ ] Packaging
|
- [ ] Packaging
|
||||||
- [x] Ensure cargo install works
|
- [x] Ensure cargo install works
|
||||||
- [ ] Docker image
|
- [x] Docker image
|
||||||
- [ ] Releases
|
- [ ] Releases
|
||||||
- [ ] Locking
|
- [ ] Locking
|
||||||
- [ ] Testing such that I'm confident enough to use it myself :)
|
- [ ] Testing such that I'm confident enough to use it myself :)
|
||||||
|
|||||||
Reference in New Issue
Block a user