nxtgauge-backend-rust/Dockerfile.template
Ashwin Kumar Sivakumar c85e6af22e feat(ai): complete AI plans/credits implementation and build tooling
- Add AI plans, credits, model routing, LiteLLM client, and orchestrator services
- Add AI management endpoints, auto-apply/auto-request handlers, and log endpoints
- Add cron jobs for daily action reset and monthly credit reset
- Add AI credit purchase flow in payments service
- Add ai_credit_packages migration with seed data
- Update Dockerfile build tooling across services
2026-06-15 06:15:49 +05:30

37 lines
926 B
Text

# Build stage
FROM registry.nxtgauge.com/rust:alpine AS builder
WORKDIR /usr/src/app
# Install build dependencies and musl target
RUN apk add --no-cache musl-dev pkgconfig openssl-dev && \
rustup target add x86_64-unknown-linux-musl
# Copy manifests
COPY Cargo.toml Cargo.lock ./
COPY crates ./crates
COPY apps ./apps
# Build static binary with musl target
ENV RUSTFLAGS='-C target-feature=+crt-static'
RUN cargo build --release --bin ${BIN_NAME} --target x86_64-unknown-linux-musl
# Runtime stage - minimal Alpine
FROM registry.nxtgauge.com/alpine:latest AS runtime
# Install CA certificates only
RUN apk add --no-cache ca-certificates
# Create app user
RUN adduser -D -u 1000 appuser
WORKDIR /app
# Copy static binary from builder
COPY --from=builder /usr/src/app/target/x86_64-unknown-linux-musl/release/${BIN_NAME} ./${BIN_NAME}
# Switch to non-root user
USER appuser
# Run the binary
CMD ["./${BIN_NAME}"]