Docker alpine ничего не делает по команде внутри оболочки - PullRequest
0 голосов
/ 21 января 2019

У меня есть следующее объявление докера для приложения узла на базе Alpine.

FROM node:8-alpine

RUN npm install typescript
RUN npm install ts-node
RUN npm install puppeteer

CMD [ "/bin/sh" ]

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

docker run -v "$(pwd):/test/" --net host -it test-chromium

И когда я пытаюсь выполнить внутри этой команды

npx ts-node /test/render.ts

Это просто показывает, что ts-узелбыл установлен и висит после него.Ничего не происходит.Чтобы проверить, связана ли эта проблема с хромом, я попытался выполнить только ts-node в режиме REPL следующим образом:

npx ts-node

и напрямую через ./bin

./node_modules/.bin/ts-node

Ничего не произошло.После нажатия Enter консоль просто зависает и не отображается подсказка ввода.Даже после модификации docker для выполнения этого непосредственно из декларации ничего не меняется.

Что мне не хватает?

1 Ответ

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

Нашел причину.Это ts-узел, который висит без tsconfig.json.Без этого, как я пытался запустить его из root, связывание машинописного текста для обхода всех папок файлов для компиляции.После добавления tsconfig.ts и установки соответствующих ограничений скрипт начал выполнение.

Некоторые комментарии по этому вопросу от github:

https://github.com/TypeStrong/ts-node/issues/690#issuecomment-424178198

...