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?
Vous pouvez définir des fichiers comme .gitignore que vous ne souhaitez pas ajouter au conteneur.
# .dockerignore
*/tmp
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.
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.
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"]
La disposition des arguments par ordre alphabétique améliore la lisibilité.
RUN apt-get update && apt-get install -y bzr cvs git
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.
Si vous mettez à niveau, mettez à niveau la version de l'image de base.
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.
Ce n'est pas très bon pour la sécurité, il est donc préférable d'ajouter USER.
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!
Pour plus de détails, lisez la traduction de @zembutsu! Bonnes pratiques pour l'écriture de Dockerfile
Recommended Posts