Nous avons extrait les meilleurs plastiques de Dockerfile!

introduction

Cette fois, en suivant la précédente, je vais vous présenter la méthode d'écriture de base de Docker.

Il a été extrait des ** Meilleures pratiques pour l'écriture de Dockerfiles **.

Si vous souhaitez visionner la vidéo, veuillez cliquer ici. [YouTube Video] Présentation des meilleures pratiques de Dockerfile! Combien pouvez-vous faire? Collation

Utilisez .dockerignore

Vous pouvez définir des fichiers comme .gitignore que vous ne souhaitez pas ajouter au conteneur.

# .dockerignore
*/tmp

1 processus par conteneur

Ne démarrez pas Rails, MySQL, Nginx, etc. dans un seul conteneur (Dockerfile). Il sera difficile de mettre à niveau la version, et il sera difficile d'isoler la cause.

Minimisez le nombre de couches

Chaque fois que Docker exécute RUN, ADD, COPY, une image est créée temporairement. Cela affecte également la lisibilité du Dockerfile, essayez donc de ne pas le diviser autant que possible.

Utiliser la construction en plusieurs étapes

Nommez-le avec la clause AS dans FROM comme suit. Vous pouvez supprimer l'image intermédiaire en déclarant ce que vous avez nommé lorsque vous recréez un nouveau calque.

Go est utilisé dans l'exemple, mais Node semble également être utile.

FROM golang:1.11-alpine AS build

####Présentation du package&Construire####
RUN apk add --no-cache git
RUN go get github.com/golang/dep/cmd/dep

COPY Gopkg.lock Gopkg.toml /go/src/project/
WORKDIR /go/src/project/
RUN dep ensure -vendor-only

COPY . /go/src/project/
RUN go build -o /bin/project
####Fin de construction####

#Recréez une nouvelle couche
FROM scratch
COPY --from=build /bin/project /bin/project
ENTRYPOINT ["/bin/project"]
CMD ["--help"]

Les arguments sont appropriés!

La disposition des arguments par ordre alphabétique améliore la lisibilité.

RUN apt-get update && apt-get install -y bzr cvs git

Éclaircir avec une image alpine

Vous pouvez utiliser l'image alpine pour réduire la capacité (5 M ou moins). À propos, alpine est une image de BusyBox plus package manager apk. Étant donné que la charge sur le système d'exploitation hôte peut être réduite, cela peut être bon dans un environnement de développement.

Ne pas mettre à jour

Si vous mettez à niveau, mettez à niveau la version de l'image de base.

Utiliser COPY sur AJOUTER

ADD est une commande polyvalente qui peut se comporter de manière inattendue. Si vous souhaitez déplacer des fichiers du système d'exploitation hôte vers le système d'exploitation invité, utilisez COPY.

N'utilisez pas d'utilisateur root

Ce n'est pas très bon pour la sécurité, il est donc préférable d'ajouter USER.

Sommaire

Cette fois, j'ai présenté comment écrire un Dockerfile. Je présenterai la méthode d'écriture spécifique et son utilisation dans un autre article!

Les commentaires sur twitter et youtube sont également les bienvenus!

Postscript

Pour plus de détails, lisez la traduction de @zembutsu! Bonnes pratiques pour l'écriture de Dockerfile

Recommended Posts

Nous avons extrait les meilleurs plastiques de Dockerfile!
Programme de jugement de bingo
Nous avons extrait les meilleurs plastiques de Dockerfile!
Jugement du calendrier
[Rails] Nous avons résumé les emplacements de stockage et l'utilisation des images des développeurs et des utilisateurs.
Une histoire sur la compatibilité d'un Dockerfile existant avec le GPU
L'histoire de l'ajout du dernier Node.js à DockerFile
Nous avons rassemblé différentes méthodes d'implémentation de singleton.