Simplify Dockerfile to use pre-built musl binary, add Ingress

- Dockerfile: drop Rust build stage, COPY static musl binary directly
- Add traefik Ingress for tori.oci.euphon.net with LE cert

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Fam Zheng 2026-02-28 10:51:14 +00:00
parent eb8f5173f3
commit 85ab93798b
2 changed files with 26 additions and 10 deletions

View File

@ -6,19 +6,11 @@ RUN npm ci
COPY web/ ./ COPY web/ ./
RUN npm run build RUN npm run build
# Stage 2: Build backend # Stage 2: Runtime
FROM rust:1.86-alpine AS backend
RUN apk add --no-cache musl-dev
WORKDIR /app
COPY Cargo.toml Cargo.lock ./
COPY src/ ./src/
RUN cargo build --release
# Stage 3: Runtime
FROM alpine:3.21 FROM alpine:3.21
RUN apk add --no-cache ca-certificates RUN apk add --no-cache ca-certificates
WORKDIR /app WORKDIR /app
COPY --from=backend /app/target/release/tori . COPY target/aarch64-unknown-linux-musl/release/tori .
COPY --from=frontend /app/web/dist ./web/dist/ COPY --from=frontend /app/web/dist ./web/dist/
COPY config.yaml . COPY config.yaml .

View File

@ -59,3 +59,27 @@ spec:
- port: 80 - port: 80
targetPort: 3000 targetPort: 3000
type: ClusterIP type: ClusterIP
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: tori
namespace: tori
annotations:
traefik.ingress.kubernetes.io/router.tls.certresolver: le
spec:
ingressClassName: traefik
rules:
- host: tori.oci.euphon.net
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: tori
port:
number: 80
tls:
- hosts:
- tori.oci.euphon.net