Vscode-docker: agregue soporte para archivos docker de múltiples etapas

Creado en 28 abr. 2017  ·  7Comentarios  ·  Fuente: microsoft/vscode-docker

probablemente solo necesite actualizar la plantilla de dockerfile predeterminada.

https://codefresh.io/blog/node_docker_multistage/

//cc: @lostintangent

idea aproximada...

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
enhancement needs more info

Comentario más útil

¡Suena bien! También debemos hacer lo siguiente:

  1. Actualice el archivo de sintaxis de Docker incluido para colorear correctamente la nueva palabra clave $# AS --from . Este es un precio más bajo, pero sería bueno hacerlo, ya que es probable que las compilaciones de varias etapas se vuelvan bastante comunes.

  2. Actualice las reglas de linter para no quejarse de la cláusula AS foo FROM de la directiva FROM. Actualmente, damos falsos negativos sobre esto, lo cual no es lo ideal.

Todos 7 comentarios

¡Suena bien! También debemos hacer lo siguiente:

  1. Actualice el archivo de sintaxis de Docker incluido para colorear correctamente la nueva palabra clave $# AS --from . Este es un precio más bajo, pero sería bueno hacerlo, ya que es probable que las compilaciones de varias etapas se vuelvan bastante comunes.

  2. Actualice las reglas de linter para no quejarse de la cláusula AS foo FROM de la directiva FROM. Actualmente, damos falsos negativos sobre esto, lo cual no es lo ideal.

También debemos considerar las siguientes mejoras:

  1. Actualice el proveedor flotante para analizar correctamente el nombre de la imagen cuando use una cláusula AS en la directiva FROM. En este momento, el comportamiento de desplazamiento está roto cuando se usa FROM/AS

  2. Actualice el proveedor de finalización de Dockerfile mostrando una lista completa de nombres de imágenes base al escribir "--from=" en la directiva COPY y la directiva FROM

Mientras estás en eso. La advertencia (línea ondulada verde) de que solo puede haber una instrucción CMD en un Dockerfile ahora es incorrecta.

Hola, @seank-com. Creo que el error que está describiendo es rcjsuen/dockerfile-utils#22. Consulte https://github.com/rcjsuen/dockerfile-utils/issues/22#issuecomment -366485869 para obtener una solución alternativa. Es de esperar que ese error se solucione con la próxima versión de la extensión, ya que # 249 se ha fusionado.

Si detecta algún otro error de validación extraño o incorrecto, no dude en hacérmelo saber. ¡Gracias!

Plantilla Node.js actual:

DESDE nodo: 10.13-alpino
ENV NODE_ENV producción
DIRECTORIO DE TRABAJO /usr/src/app
COPIAR ["paquete.json", "paquete-bloqueo.json ", "npm-shrinkwrap.json ", "./"]
EJECUTAR npm install --production --silent && mv node_modules ../
COPIAR . .
EXPONER 3000
CMD npm inicio

@lostintangent , @chrisdias ¿Necesitamos mejorar esto para una mejor práctica?

@lostintangent @chrisdias tus pensamientos?

Este problema se ha cerrado automáticamente porque necesita más información y no ha tenido actividad reciente. Consulte también nuestras pautas para informar problemas .

¡Feliz codificación!

¿Fue útil esta página
0 / 5 - 0 calificaciones