【问题标题】:node-typescript application docker command errornode-typescript 应用程序 docker 命令错误
【发布时间】:2020-07-15 07:14:22
【问题描述】:

我使用打字稿创建了一个节点应用程序。

{
  "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"]

我想使用 node 命令而不是 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

【问题讨论】:

    标签: node.js typescript docker dockerfile package.json


    【解决方案1】:

    ts-node没有在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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-12
      • 1970-01-01
      • 1970-01-01
      • 2017-12-04
      相关资源
      最近更新 更多