Экземпляр узла Docker не может выполнить команду gulp с не может найти модуль 'strip-ansi' - PullRequest
0 голосов
/ 11 января 2019

При запуске моего док-контейнера я получаю следующую ошибку


    Error: Cannot find module 'strip-ansi'
        at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
        at Function.Module._load (internal/modules/cjs/loader.js:507:25)
        at Module.require (internal/modules/cjs/loader.js:637:17)
        at require (internal/modules/cjs/helpers.js:22:18)
        at Object.<anonymous> (/usr/local/lib/node_modules/gulp/node_modules/string-width/index.js:2:17)
        at Module._compile (internal/modules/cjs/loader.js:689:30)
        at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
        at Module.load (internal/modules/cjs/loader.js:599:32)
        at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
        at Function.Module._load (internal/modules/cjs/loader.js:530:3)

Хотя я и добавил strip-ansi в свой package.json и вручную вызываю npm i strip-ansi в своем Dockerfile. Я даже не уверен, что пытается использовать strip-ansi и почему он не может найти его в моей папке node_modules.

Я проверил все аналогичные статьи стека, пробовал разные версии узлов (6, 8, 10, 11), пытался переместить его в devDependencies. Единственное, что я не пробовал, это одна рекомендация этой статьи стека , чтобы использовать nvm для загрузки узла, так как я не уверен, как это сделать в моем Dockerfile (они используют curl)

Вот мой Dockerfile, я не уверен, что еще могу предоставить

FROM node:10.15.0

WORKDIR /html

RUN npm install -g gulp
RUN npm install -g bower
RUN npm install gulp
RUN npm link gulp
RUN npm install strip-ansi

COPY package*.json ./
COPY bower.json ./
RUN npm install
RUN bower install --allow-root

ADD . .

CMD gulp prodBuildNoDeploy

Мои команды сборки и запуска:

docker build -t clientparticipation .
docker run -it --name=cp clientparticipation

Если бы я точно знал, где это происходит, я мог бы знать, что еще я мог бы предоставить, может ли это быть связано с gulpfile?

У меня никогда не было этого проекта, поэтому я не совсем уверен, каким должен быть ожидаемый результат, судя по gulpfile, который он должен просто создать для производства.

1 Ответ

0 голосов
/ 11 января 2019

Удаление WORKDIR /html решило проблему. Мне нужно вернуться к документации Docker, чтобы понять, почему, или попытаться решить, что я делал неправильно, потому что я считаю, что использование WORKDIR здесь правильно.

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

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