42 lines
887 B
Docker
42 lines
887 B
Docker
# ====== STAGE 1: build ======
|
|
FROM golang:latest AS builder
|
|
|
|
# Installa tool utili per mod e certs (git, ca)
|
|
RUN apt install git ca-certificates -y
|
|
|
|
WORKDIR /src
|
|
|
|
COPY . .
|
|
RUN go mod tidy ; go mod vendor
|
|
|
|
|
|
# Compila binario statico e snello
|
|
ENV CGO_ENABLED=0
|
|
RUN go build -trimpath -ldflags="-s -w" -o /out/money ./...
|
|
|
|
# ====== STAGE 2: runtime ======
|
|
FROM alpine:3.20
|
|
|
|
# Certificati TLS per HTTPS (Binance/THOR/Matrix) + tzdata opzionale
|
|
RUN apk add --no-cache ca-certificates tzdata
|
|
|
|
# Crea utente non-root
|
|
RUN adduser -D -u 1001 appuser
|
|
|
|
WORKDIR /app
|
|
|
|
# Directory dati persistenti (montabili come volume)
|
|
RUN mkdir -p /app/data /app/state && chown -R appuser:appuser /app
|
|
|
|
# Copia binario
|
|
COPY --from=builder /out/money /app/money
|
|
|
|
USER appuser
|
|
|
|
# Env di default (puoi sovrascriverle in compose)
|
|
ENV DATA_DIR=/app/data \
|
|
STATE_DIR=/app/state
|
|
|
|
# Avvio demone
|
|
CMD ["/app/money"]
|