【发布时间】:2020-06-29 08:41:47
【问题描述】:
我为 nodejs 项目创建了一个 Dockerfile。它包含一个带有许多脚本的 package.json。
"scripts": {
"start": "npm run",
"server": "cd server && npm start",
"generator": "cd generator && npm start",
...
},
我需要在我的 docker 镜像中运行 server 和 genberator。如何做到这一点?
我试过了:
CMD ls;npm run server ; npm run generator 这将找不到包 json,因为 shellform 似乎在 /bin/sh -c 中运行。
CMD ["npm","run","server"] 也不起作用,并且缺少第二条命令
第一次尝试的 ls 显示所有文件都已就位(包括 package.json)。
为了完整起见,有问题的项目是https://github.com/seekwhencer/node-bilder-brause(不是我的)。 当前的 Dockerfile:
FROM node:14
# Create app directory
WORKDIR /usr/src/app
# Bundle app source
COPY ./* ./
RUN npm install
EXPOSE 3050
EXPOSE 3055
CMD ls ; npm run server ; npm run generator
【问题讨论】:
-
编写一个包含
npm命令的包装脚本,然后将其用作您的CMD。 -
你能回答这个问题吗?