1

Je construis une petite application NodeJS/Express que je déverrouille et déploie sur Compute Engine. J'ai mon docker-compose.yml mis en place pour le développement (c'est-à-dire que je monte mon répertoire source afin que je puisse faire des changements sans reconstruire). Lorsque je serai prêt pour la production, je construirai mon image et je l'enverrai dans un registre de conteneurs sur Google Cloud. Quand je le fais, je voudrais faire mon code source dans l'image. Note: ceci est un projet d'un seul homme et je ne crée aucun type d'IC. Je peux le faire avec COPY dans mon Dockerfile mais j'utilise le même Dockerfile pour le développement. Est-il correct d'utiliser un Dockerfile différent pour la production et le développement ou existe-t-il une méthode pour que je le fasse conditionnellement dans le Dockerfile lui-même? Quelque chose comme ...Docker & Docker Compose - COPY pour l'image prod mais le volume de montage pour le développement

if ENV=production 
    COPY blah ./ 
    ... 

Répondre

1

meilleures pratiques est de conserver les fichiers de docker séparés pour la production, le développement et le test La raison en est qu'il peut y avoir différents environnements utiliser pour ces 3 étapes et il est facile de maintenir à long Exécuter

Toujours garder votre fichier docker minimale et utiliser des scripts .sh pour le travail logique

+1

Merci Kalanamith. En fait, j'étais capable de faire les deux (copier et monter) sans effets secondaires, par conséquent, je n'avais besoin que d'un seul 'Dockerfile' et de l'utilisation de' .dockerignore'. –