37 lines
906 B
Docker
37 lines
906 B
Docker
# Utiliser une image officielle de Go pour construire l'application
|
|
FROM golang:1.23-alpine AS builder
|
|
|
|
# Installer les dépendances pour PostgreSQL
|
|
RUN apk add --no-cache git
|
|
|
|
# Créer le répertoire de travail
|
|
WORKDIR /app
|
|
|
|
# Copier le module go et télécharger les dépendances
|
|
COPY go.mod go.sum ./
|
|
RUN go mod download
|
|
|
|
# Copier tout le code de l'application dans le conteneur
|
|
COPY . .
|
|
|
|
# Compiler l'application en un binaire statique
|
|
RUN go build -o app .
|
|
|
|
# Utiliser une image alpine légère pour l'exécution
|
|
FROM alpine:latest
|
|
|
|
# Installer les dépendances requises pour PostgreSQL dans le conteneur
|
|
RUN apk --no-cache add ca-certificates
|
|
|
|
# Créer le répertoire de l'application
|
|
WORKDIR /root/
|
|
|
|
# Copier le binaire compilé depuis l'image de build
|
|
COPY --from=builder /app/app .
|
|
|
|
# Exposer le port de l'application
|
|
EXPOSE 8080
|
|
|
|
# Définir la commande pour démarrer l'application
|
|
CMD ["./app"]
|