Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Здравствуйте! Есть задача, связанная с Docker и NPM. Описываю суть.

  • Есть Docker контейнер на основе Debian, который делает git clone. В данный момент мы условно находимся в директории "/" или project root.
  • После этого пользовательский скрипт делает git submodule update --init --recursive
  • Следовательно подгружаются все подмодули git и пора делать composer install
  • Composer успешно устанавливает часть приложения, написанную на PHP. Теперь надо установить Node.js приложение, которое лежит по адресу /web/client
На этом моменте и начинаются проблемы. Из-за того что мы находимся в Docker контейнере мы не можем сделать "cd ./web/client", "npm i", "npm run build" и вернуться обратно через "cd ../../". Следовательно надо как-то модифицировать команду npm.

Если сделать npm install --prefix ./web/client. Она отказывается работать и пишет ENOLOCAL. Логи тоже ничего внятного не пишут. Если попробовать сделать "npm --prefix ./web/client install ./web/client", то вроде бы все нормально и загружается, однако в самой /web/client отказывается куча мусора, который, очень вероятно, должен лежать в /web/client/node_modules/.bin

Я читал документацию по Dockerfile'у, знаю о RUN, WORKDIR и т.д., и у меня он есть что бы его изменить, но проблема заключается так же в том что сам контейнер создает Bitbucket (сервис Bitbucket Pipelines) и git clone делает непосредственно он. Потом, на сколько я понимаю, мы можем выполнять только пользовательские скрипты внутри контейнера и ни о каком RUN речи быть не может.

Кто сталкивался с подобным, оставляйте заявки, указывайте бюджет. Спасибо!

6 лет назад
MihaOo
Михаил 
32 годаУкраина
17 лет в сервисе
Был
2 года назад