启动容器会导致错误

时间:2017-10-09 08:31:05

标签: angular docker

我想将我的Angular应用程序停靠,但是,我在容器中运行它时遇到问题。

这是我的Dockerfile:

FROM node:8.6-alpine

RUN mkdir /app

WORKDIR /app

COPY package.json ./
COPY .angular-cli.json ./
COPY tsconfig.json ./
COPY tslint.json ./
COPY src/ ./src/

RUN yarn install && yarn global add @angular/cli

EXPOSE 4200

ENTRYPOINT ["./node_modules/angular-cli/bin/ng serve --host 0.0.0.0 --port 4200"]

这是我的命令我如何运行它:

$ docker run -p 4200:4200 my-notes

启动容器时控制台出错:

container_linux.go:262: starting container process caused "exec: \"./node_modules/angular-cli/bin/ng serve --host 0.0.0.0 --port 4200\": stat ./node_modules/angular-cli/bin/ng serve --host 0.0.0.0 --port 4200: no such file or directory"
docker: Error response from daemon: oci runtime error: container_linux.go:262: starting container process caused "exec: \"./node_modules/angular-cli/bin/ng serve --host 0.0.0.0 --port 4200\": stat ./node_modules/angular-cli/bin/ng serve --host 0.0.0.0 --port 4200: no such file or directory".
ERRO[0000] error waiting for container: context canceled 

我尝试将ENTRYPOINT简单地设置为ng serve然后容器正常工作且控制台中没有记录错误,但我无法从浏览器运行该应用程序(页面不可用)< / p>

1 个答案:

答案 0 :(得分:1)

ENTRYPOINT command接受参数列表。您只放置了一个包含命令参数的参数。

我建议您将ENTRYPOINT替换为类似的内容 - 将参数分开

ENTRYPOINT ["./node_modules/angular-cli/bin/ng", "serve", "--host", "0.0.0.0", "--port", "4200"]

从你发布的“没有这样的文件”错误,我猜测docker正试图找到一个名为"./node_modules/angular-cli/bin/ng serve --host 0.0.0.0 --port 4200"的文件,这显然不存在:)当你删除其他参数时,docker能够找到文件。