21 - Dockerizing Go applications

Avec l’arrivée de Docker, notre façon de déployer nos applications a changé. Alors que la virtualisation classique impose d’avoir plusieurs OS, Docker se veut bien plus léger car il n’en utilise qu’un dans lequel, il isole chaque application dans un container.

De base Docker a été pensé par des développeurs pour des développeurs, mais son succès en fait aussi un outil précieux pour tous les administrateurs et DevOps.

Le contenu du fichier Dockerfile est :


FROM golang:1.13 AS Builder
WORKDIR /work
COPY . ./
RUN useradd api
RUN CGO_ENABLED=0 go build -o api

FROM scratch
COPY --from=Builder /work/api /usr/bin/api
COPY --from=Builder /etc/passwd /etc/

USER api
EXPOSE 3000
ENTRYPOINT ["/usr/bin/api"]