Сборка Docker из Dockerfile зависает на неопределенное время и иногда вылетает с ошибкой «не удалось запустить служебную утилиту VM» - PullRequest
0 голосов
/ 21 июня 2019

В настоящее время я использую Docker Desktop для Windows и следую этому руководству по использованию Docker и VSCode (https://scotch.io/tutorials/docker-and-visual-studio-code), а когда я пытаюсь создать образ, демон может выполнить первый шаг Dockerfile., но потом бесконечно висит на втором шаге.Иногда, но очень редко, по истечении неопределенного времени, он выдает ошибку и выдает мне эту ошибку

failed to start service utility VM (createreadwrite): CreateComputeSystem 97cb9905dbf6933f563d0337f8321c8cb71e543a242cddb0cb09dbbdbb68b006_svm: The operation could not be started because a required feature is not installed.
(extra info: {"SystemType":"container","Name":"97cb9905dbf6933f563d0337f8321c8cb71e543a242cddb0cb09dbbdbb68b006_svm","Layers":null,"HvPartition":true,"HvRuntime":{"ImagePath":"C:\\Program Files\\Linux Containers","LinuxInitrdFile":"initrd.img","LinuxKernelFile":"kernel"},"ContainerType":"linux","TerminateOnLastHandleClosed":true})

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

Вот Dockerfile, из которого я пытаюсь собрать.Я дважды проверил в руководстве, что он правильный, хотя все еще возможно, что я что-то пропустил (за пределами номера версии в строке ОТ).

FROM node:10.13-alpine
ENV NODE_ENV production
WORKDIR /usr/src/app
COPY ["package.json", "package-lock.json*", "npm-shrinkwrap.json*", "./"]
RUN npm install --production --silent && mv node_modules ../
COPY . .
EXPOSE 3000
CMD npm start

Я ожидал бы, что изображение будет построено правильно, так как я прошел учебник до T. У меня даже был полный сброс и я снова начал учебник, и я все еще получаю ту же проблему, где он зависаетна неопределенный срок.

1 Ответ

0 голосов
/ 21 июня 2019

ну, вы копируете несколько файлов два раза. Я бы не стал этого делать.
поэтому для минимального изменения вашего Dockerfile я бы попробовал:

FROM node:10.13-alpine
ENV NODE_ENV production
WORKDIR /usr/src/app
COPY . .
RUN npm install --production --silent && mv node_modules ../
EXPOSE 3000
CMD npm start

Я бы тоже подумал о && mv node_modules ../ части, если она действительно нужна.
Если вы этого еще не сделали, я советую вам написать файл .dockerignore рядом с вашим Dockerfile с минимальным содержанием:

/node_modules

, чтобы ваш локальный каталог node_modules также не копировался при создании образа (экономит время).

надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...