Wahrscheinlich müssen Sie nur die Standard-Dockerfile-Vorlage aktualisieren.
https://codefresh.io/blog/node_docker_multistage/
//cc: @lostintangent
grobe idee...
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
Hört sich gut an! Wir sollten auch Folgendes tun:
Aktualisieren Sie die integrierte Docker -Syntaxdatei, um das neue Schlüsselwort AS
und das Flag --from
richtig einzufärben. Dies ist ein niedrigerer Preis, wäre aber nett, da mehrstufige Builds wahrscheinlich ziemlich häufig werden
Aktualisieren Sie die Linter-Regeln, um sich nicht über die AS foo
-Klausel der FROM
-Direktive zu beschweren. Derzeit geben wir diesbezüglich falsche Negativmeldungen ab, was nicht ideal ist
Wir sollten auch die folgenden Verbesserungen in Betracht ziehen:
Aktualisieren Sie den Hover-Anbieter, um den Bildnamen korrekt zu analysieren, wenn Sie eine AS-Klausel in der FROM-Direktive verwenden. Im Moment ist das Hover-Verhalten bei der Verwendung von FROM/AS fehlerhaft
Aktualisieren Sie den Dockerfile-Vervollständigungsanbieter, indem Sie eine Vervollständigungsliste der Basis-Image-Namen anzeigen, wenn Sie „--from=“ in die COPY-Direktive und die FROM-Direktive eingeben
Wenn Sie schon dabei sind. Die Warnung (grüner Squiggle), dass es nur eine CMD-Anweisung in einem Dockerfile geben kann, ist jetzt falsch.
Hallo, @seank-com. Ich glaube, der Fehler, den Sie beschreiben, ist rcjsuen/dockerfile-utils#22. Eine Problemumgehung finden Sie unter https://github.com/rcjsuen/dockerfile-utils/issues/22#issuecomment -366485869. Dieser Fehler sollte hoffentlich mit der nächsten Version der Erweiterung behoben werden, da #249 eingefügt wurde.
Sollten Sie weitere seltsame oder falsche Validierungsfehler entdecken, zögern Sie bitte nicht, mir dies mitzuteilen. Danke!
Aktuelle Node.js-Vorlage:
VON Knoten: 10.13-alpin
ENV NODE_ENV-Produktion
ARBEITSVERZ /usr/src/app
COPY ["package.json", "package-lock.json ", "npm-shrinkwrap.json ", "./"]
RUN npm install --production --silent && mv node_modules ../
KOPIEREN . .
AUSSETZEN 3000
CMD npm starten
@lostintangent , @chrisdias Müssen wir das für eine bessere Praxis verbessern?
@lostintangent @chrisdias deine Gedanken?
Dieses Problem wurde automatisch geschlossen, da es weitere Informationen benötigt und in letzter Zeit nicht aktiv war. Siehe auch unsere Richtlinien zum Melden von Problemen.
Viel Spaß beim Codieren!
Hilfreichster Kommentar
Hört sich gut an! Wir sollten auch Folgendes tun:
Aktualisieren Sie die integrierte Docker -Syntaxdatei, um das neue Schlüsselwort
AS
und das Flag--from
richtig einzufärben. Dies ist ein niedrigerer Preis, wäre aber nett, da mehrstufige Builds wahrscheinlich ziemlich häufig werdenAktualisieren Sie die Linter-Regeln, um sich nicht über die
AS foo
-Klausel derFROM
-Direktive zu beschweren. Derzeit geben wir diesbezüglich falsche Negativmeldungen ab, was nicht ideal ist