Something went wrong. Try again.
This repository has no description
Something went wrong. Try again.
ayos Dockerfile
1.0 kB · 47 lines
Dockerfile
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748# -- Stage 1: Build frontend --FROM node:22-alpine AS web-build
WORKDIR /app
COPY web/package.json web/package-lock.json ./RUN npm ci
COPY web/ .COPY content/ ../content/RUN npm run build
# -- Stage 2: Build server --FROM rust:1-alpine AS server-build
RUN apk add --no-cache musl-dev openssl-dev openssl-libs-static pkgconfig
WORKDIR /app
# Cache dependencies: copy manifests first, build a dummy, then swap in real sourceCOPY api/Cargo.toml api/Cargo.lock ./RUN mkdir src && echo 'fn main() {}' > src/main.rs && cargo build --release && rm -rf src target/release/deps/ayos*
COPY api/src ./srcCOPY api/migrations ./migrationsRUN cargo build --release
# -- Stage 3: Runtime --FROM alpine:3.21
RUN apk add --no-cache ca-certificates
WORKDIR /app
COPY --from=server-build /app/target/release/ayos-api ./serverCOPY --from=web-build /app/dist ./dist
VOLUME /app/data
ENV DATABASE_URL=sqlite:/app/data/ayos.dbENV JWT_SECRET=change-me-in-productionENV STATIC_DIR=/app/distENV PORT=3000
EXPOSE 3000
CMD ["./server"]