Работая на 2 WORKDIR одновременно DOCKEFILE - PullRequest
0 голосов
/ 29 октября 2018

Я пытаюсь сократить время сборки моего образа докера.

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

Сейчас он запускается последовательно из 2 разных рабочих папок.

WORKDIR $CLIENT_DIR
RUN bower --allow-root install

WORKDIR $SERVER_DIR
RUN npm install

Поскольку оба они независимы друг от друга, досадно ждать окончания установки bower для установки npm.

Я думаю, у докера будет лучший способ справиться с такими случаями.

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

1 Ответ

0 голосов
/ 29 октября 2018

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

  1. Вы можете запустить обе команды в фоновом режиме, а затем выполнить скрипт bash, который проверяет, закончили ли процессы свою работу.
  2. Вы можете использовать многоступенчатую сборку, создав 2 изображения - одно с вашими зависимостями npm, а другое с зависимостями bower, а затем получить третью сборку, которая получит артефакты, созданные двумя предыдущими сборками.
...