probablement juste besoin de mettre à jour le modèle de dockerfile par défaut.
https://codefresh.io/blog/node_docker_multistage/
//cc: @losttangent
idée approximative...
FROM node:latest AS base
WORKDIR /usr/src/app
COPY package.json .
FROM base AS dependencies
RUN npm set progress=false && npm config set depth 0
RUN npm install --only=production
RUN cp -R node_modules prod_node_modules
RUN npm install
FROM dependencies AS build
COPY . .
RUN ./node_modules/.bin/gulp
RUN cp -R client prod_client
FROM base AS release
COPY --from=dependencies /usr/src/app/prod_node_modules ./node_modules
COPY --from=build /usr/src/app/prod_client ./client
COPY . .
EXPOSE 3000
CMD npm run start
Ça a l'air bien! Nous devrions également faire ce qui suit :
Mettez à jour le fichier de syntaxe Docker intégré pour coloriser correctement le nouveau mot-clé $# AS
--from
. C'est moins cher, mais ce serait bien, car les constructions en plusieurs étapes deviendront probablement assez courantes
Mettez à jour les règles de linter pour ne pas vous plaindre de la clause AS foo
FROM
. Actuellement, nous donnons des faux négatifs à ce sujet, ce qui n'est pas idéal
Nous devrions également envisager les améliorations suivantes :
Mettez à jour le fournisseur de survol pour analyser correctement le nom de l'image lors de l'utilisation d'une clause AS dans la directive FROM. À l'heure actuelle, le comportement de survol est interrompu lors de l'utilisation de FROM/AS
Mettez à jour le fournisseur de complétion Dockerfile en affichant une liste de complétion des noms d'images de base lorsque vous tapez "--from=" dans la directive COPY et la directive FROM
Pendant que vous y êtes. L'avertissement (gribouillis vert) qu'il ne peut y avoir qu'une seule instruction CMD dans un Dockerfile est maintenant erroné.
Salut, @seank-com. Je crois que le bogue que vous décrivez est rcjsuen/dockerfile-utils#22. Veuillez consulter https://github.com/rcjsuen/dockerfile-utils/issues/22#issuecomment -366485869 pour une solution de contournement. Ce bogue devrait, espérons-le, être corrigé avec la prochaine version de l'extension, car # 249 a été fusionné.
Si vous repérez d'autres erreurs de validation étranges ou incorrectes, n'hésitez pas à me le faire savoir. Merci!
Modèle Node.js actuel :
DE nœud : 10.13-alpine
Production ENV NODE_ENV
WORKDIR /usr/src/app
COPIER ["paquet.json", "paquet-lock.json ", "npm-shrinkwrap.json ", "./"]
RUN npm install --production --silent && mv node_modules ../
COPIE . .
EXPOSER 3000
CMD démarrage npm
@lostintangent , @chrisdias Avons-nous besoin d'améliorer cela pour une meilleure pratique ?
@lostintangent @chrisdias vos pensées?
Ce problème a été fermé automatiquement car il nécessite plus d'informations et n'a pas eu d'activité récente. Consultez également nos consignes de signalement des problèmes .
Bon codage !
Commentaire le plus utile
Ça a l'air bien! Nous devrions également faire ce qui suit :
Mettez à jour le fichier de syntaxe Docker intégré pour coloriser correctement le nouveau mot-clé $#
AS
--from
. C'est moins cher, mais ce serait bien, car les constructions en plusieurs étapes deviendront probablement assez courantesMettez à jour les règles de linter pour ne pas vous plaindre de la clause
AS foo
FROM
. Actuellement, nous donnons des faux négatifs à ce sujet, ce qui n'est pas idéal