节点typescript应用程序docker命令错误



我已经使用typescript创建了一个节点应用程序。

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

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

最新更新