Vscode-docker: добавить поддержку многоэтапных файлов докеров

Созданный на 28 апр. 2017  ·  7Комментарии  ·  Источник: microsoft/vscode-docker

вероятно, просто нужно обновить шаблон dockerfile по умолчанию.

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

//копия: @lostintangent

приблизительное представление...

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

Самый полезный комментарий

Звучит отлично! Мы также должны сделать следующее:

  1. Обновите встроенный файл синтаксиса Docker, чтобы правильно раскрасить новое ключевое слово $#$0 AS --from . Это более низкое значение pri, но было бы неплохо сделать, так как многоэтапные сборки, вероятно, станут довольно распространенными.

  2. Обновите правила линтера, чтобы не жаловаться на пункт AS foo FROM директивы FROM. В настоящее время мы даем ложноотрицательные результаты по этому поводу, что не идеально.

Все 7 Комментарий

Звучит отлично! Мы также должны сделать следующее:

  1. Обновите встроенный файл синтаксиса Docker, чтобы правильно раскрасить новое ключевое слово $#$0 AS --from . Это более низкое значение pri, но было бы неплохо сделать, так как многоэтапные сборки, вероятно, станут довольно распространенными.

  2. Обновите правила линтера, чтобы не жаловаться на пункт AS foo FROM директивы FROM. В настоящее время мы даем ложноотрицательные результаты по этому поводу, что не идеально.

Мы также должны рассмотреть следующие улучшения:

  1. Обновите провайдер наведения, чтобы правильно анализировать имя изображения при использовании предложения AS в директиве FROM. Прямо сейчас поведение при наведении не работает при использовании FROM/AS.

  2. Обновите поставщика завершения Dockerfile, отображая список завершения имен базовых образов при вводе "--from=" в директиве COPY и директиве FROM.

Пока вы на нем. Предупреждение (зеленая волнистая линия) о том, что в Dockerfile может быть только одна инструкция CMD, теперь неверно.

Привет, @seank-com. Я полагаю, что ошибка, которую вы описываете, — это rcjsuen/dockerfile-utils#22. См. https://github.com/rcjsuen/dockerfile-utils/issues/22#issuecomment -366485869 для обходного пути. Мы надеемся, что эта ошибка будет исправлена ​​​​в следующем выпуске расширения, поскольку в него был добавлен # 249.

Если вы обнаружите какие-либо другие странные или неправильные ошибки проверки, пожалуйста, не стесняйтесь, дайте мне знать. Спасибо!

Текущий шаблон Node.js:

С узла: 10.13-альпийский
Производство ENV NODE_ENV
РАБОЧИЙ КАТАЛОГ /usr/src/app
КОПИРОВАТЬ ["package.json", "package-lock.json ", "npm-shrinkwrap.json ", "./"]
ЗАПУСК npm install --production --silent && mv node_modules ../
КОПИРОВАТЬ . .
ЭКСПОЗИЦИЯ 3000
CMD запуск нпм

@lostintangent , @chrisdias Нужно ли нам улучшить это для лучшей практики?

@lostintangent @chrisdia, что ты думаешь?

Эта проблема была закрыта автоматически, так как для нее требуется дополнительная информация и в последнее время в ней не было активности. См. также наши рекомендации по сообщениям о проблемах .

Удачного кодирования!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги