我正在尝试创建和运行Angular应用程序的Docker映像。它在本地工作得很好,但是在使用docker run
命令时遇到了问题。
我的Dockerfile是:
FROM node:current
#FROM node:current-slim
#FROM node:12.13.1-alpine
WORKDIR /usr/src/app
COPY package.json .
COPY proxy.conf.json .
RUN npm install
EXPOSE 4200
CMD [ "npm", "run", "dev" ]
在我的package.json中,脚本为:
"dev": "concurrently \"npm start\" \"ng serve --proxy-config proxy.conf.json\""
和我正在运行的两个Docker命令是:
docker build --tag fuel-consumption-front:0.0.0 .
docker run --publish 8000:4200 --detach --name fuel fuel-consumption-front:0.0.0
Docker日志在说(或者这是我的桌面Docker应用程序上的输出):
> fuel-consumption-front@0.0.0 dev /usr/src/app
> concurrently "npm start" "ng serve --proxy-config proxy.conf.json"
sh: 1: concurrently: not found
npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file sh
npm ERR! errno ENOENT
npm ERR! fuel-consumption-front@0.0.0 dev: `concurrently "npm start" "ng serve --proxy-config proxy.conf.json"`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the fuel-consumption-front@0.0.0 dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2020-03-25T15_30_19_063Z-debug.log
第一行让我认为这与无法运行同时发生
我尝试了不同的节点映像(在Dockerfile中注释),还尝试了Dockerfile中的npm insall -g
。 package.json文件中也没有并发条目。所有不同的方法都引发相同的错误
我对Docker非常陌生,并以Docker页中的示例为模板。在执行此操作时,他们的示例工作得很好。
答案 0 :(得分:0)
离开它一段时间后,我有了更多的玩法。原来,当我添加npm install concurrently
时,我没有保存我的Dockerfile。现在,Dockerfile读取(还有一些其他调整):
FROM node:current-slim
WORKDIR /usr/src/app
COPY package.json .
COPY proxy.conf.json .
RUN npm install
RUN npm install concurrently
COPY . .
EXPOSE 4200
CMD [ "npm", "run", "dev" ]
现在进入下一个问题。...需要缩小图像,并说它可以在日志中很好地编译,但是无法在localhost:8000上连接(又是另一天的问题!)