angular - 启动容器导致错误

标签 angular docker

我想对我的Angular应用程序进行Docker化,但是,在容器中运行它遇到了问题。

这是我的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,然后容器工作,并且控制台中未记录任何错误,但是我无法通过浏览器运行该应用程序(页面不可用)

最佳答案

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能够找到该文件。

关于angular - 启动容器导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46641953/

相关文章:

docker - 我如何在Docker中运行Spectron测试?

docker - 使用 ansible docker_service 模块在 docker-compose.yml 中仅启动一项服务

angular - swagger-codegen 不会生成查询参数对象

javascript - 等待请求以 Angular 完成

javascript - 从不同的表单组更新表单组表单控件值,但我不想永久更改值(Angular)

docker - 如何为多个Docker Swarm堆栈提供全局.htpasswd文件?

python - 使用 Docker 进行 Web 开发的正确工作流程

angular - 将 Electron 集成到 Angular 项目时 fs 模块失败

Angular 6 - 如何在 ngComponentOutlet 中传递数据

mongodb - 在 alpine linux 上执行 mongodb 二进制文件