44 lines
846 B
Docker
44 lines
846 B
Docker
# Build stage
|
|
FROM golang:1.21-alpine AS builder
|
|
|
|
# Installer git pour go mod download
|
|
RUN apk add --no-cache git
|
|
|
|
WORKDIR /app
|
|
|
|
# Copier les fichiers go.mod et go.sum
|
|
COPY go.mod go.sum ./
|
|
|
|
# Télécharger les dépendances
|
|
RUN go mod download
|
|
|
|
# Copier le code source
|
|
COPY . .
|
|
|
|
# Builder l'application
|
|
RUN CGO_ENABLED=0 GOOS=linux go build -o pkiapi ./cmd/main.go
|
|
|
|
# Runtime stage
|
|
FROM alpine:latest
|
|
|
|
# Installer les certificats pour les connexions HTTPS/MongoDB
|
|
RUN apk --no-cache add ca-certificates
|
|
|
|
WORKDIR /app
|
|
|
|
# Copier l'exécutable depuis le builder
|
|
COPY --from=builder /app/pkiapi .
|
|
|
|
# Exposer le port
|
|
EXPOSE 8080
|
|
|
|
# Variables d'environnement par défaut
|
|
ENV PORT=8080
|
|
ENV STORAGE_TYPE=mongodb
|
|
ENV MONGO_URI=mongodb://mongo:27017
|
|
ENV MONGO_DB=pkiapi
|
|
ENV JWT_SECRET_KEY=change-this-in-production
|
|
|
|
# Lancer l'application
|
|
CMD ["./pkiapi"]
|