-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdockerfile
More file actions
41 lines (32 loc) · 1.15 KB
/
dockerfile
File metadata and controls
41 lines (32 loc) · 1.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
FROM rust:1.85-bookworm AS builder
WORKDIR /src
# Build dependencies first for better caching
COPY backend/Cargo.toml backend/Cargo.lock ./backend/
RUN mkdir -p backend/src && echo "fn main() {}" > backend/src/main.rs
RUN cargo build --manifest-path backend/Cargo.toml --release && rm -rf backend/src
# Build actual application
COPY backend ./backend
COPY static ./static
RUN cargo build --manifest-path backend/Cargo.toml --release
FROM debian:bookworm-slim
ARG UID=1001
ARG GID=1001
RUN set -eux; \
apt-get update; \
apt-get install -y --no-install-recommends ca-certificates; \
groupadd --gid "${GID}" pollyuser; \
useradd --uid "${UID}" --gid "${GID}" --create-home --home-dir /app pollyuser; \
mkdir -p /app/static /app/data; \
chown -R pollyuser:pollyuser /app; \
apt-get clean; \
rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=builder /src/backend/target/release/polly-backend /usr/local/bin/polly-backend
COPY --chown=pollyuser:pollyuser static ./static
ENV STORAGE_BACKEND=sqlite \
SQLITE_PATH=/app/data/polly.sqlite \
BIND_ADDR=0.0.0.0 \
PORT=3000
USER pollyuser
EXPOSE 3000
CMD ["/usr/local/bin/polly-backend"]