приложение машинописного узла docker ошибка команды - PullRequest
0 голосов
/ 03 апреля 2020

Я создал приложение узла, используя машинопись.

{
  "name": "my-app",
  "version": "1.0.0",
  "main": "index.ts",
  "author": "",
  "license": "MIT",
  "scripts": {
    "start": "node -r ts-node/register index.ts",
  },
  "dependencies": {
    "@types/express": "^4.17.3",
  },
  "devDependencies": {
    "ts-node": "^7.0.1",
    "typescript": "^3.4.5"
  }
}

В настоящее время я использовал следующий файл docker для запуска моего приложения

FROM node:10
WORKDIR /app
COPY package*.json ./
RUN npm i
COPY . .
EXPOSE 1234
CMD ["npm", "run", "start"]

Я хочу запустить свое приложение, используя команду узла вместо npm

FROM node:10
WORKDIR /app
COPY package*.json ./
RUN npm i
COPY . .
EXPOSE 1234
CMD ["node", "-r", "ts-node/register", "index.ts"]

но выдает ошибку вроде этой

'egister", "index.ts"]' is not recognized as an internal or external command,
operable program or batch file

1 Ответ

2 голосов
/ 03 апреля 2020

ts-узел не зарегистрирован в среде WORKDIR, вам нужно добавить относительный путь.


CMD ["node", "-r", "./node_modules/ts-node/register", "index.ts"]

Если вы хотите запустить другие пакеты, вам необходимо зарегистрировать путь, подобный этому

# add `/app/node_modules/.bin` to $PATH
ENV PATH /app/node_modules/.bin:$PATH
...