【问题标题】:How can I run Angular using docker-compose?如何使用 docker-compose 运行 Angular?
【发布时间】:2018-10-12 15:41:58
【问题描述】:

我正在尝试从头开始创建自己的 MEAN 解决方案,并且我想使用 docker-compose 来运行它。我已经成功地使 Node 服务器工作了,但是当我尝试使用 docker 运行 Angular 客户端时,它不起作用。

仅使用 docker 我运行以下命令:

docker build -t ng-client.

docker run -p 4200:4200 ng-client

从输出来看,它似乎在工作,但是当我转到 http://localhost:4200/ 时,我收到 localhost 不工作的消息。

我在使用 docker-compose 时遇到了同样的问题:

docker-compose up

我的 Dockerfile 看起来像这样:

# based on https://mherman.org/blog/dockerizing-an-angular-app/
# base image
FROM node:8.9.3

# install chrome for protractor tests
# RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
# RUN sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
# RUN apt-get update && apt-get install -yq google-chrome-stable

# set working directory
RUN mkdir /usr/src/app
WORKDIR /usr/src/app

# add `/usr/src/app/node_modules/.bin` to $PATH
ENV PATH /usr/src/app/node_modules/.bin:$PATH

# install and cache app dependencies
COPY package.json /usr/src/app/package.json
RUN npm install

# add app
COPY . /usr/src/app

EXPOSE 4200

# start app
CMD npm start

而 docker-compose.yml 看起来像这样:

version: '3'
services:
  server:
    build: ./server
    ports:
    - '3000:3000'
  # db:
  #   build: mongo:4.1
  #   ports:
  #   - '27017:27017'
  client:
    build: ./client
    ports:
    - '4200:4200'

完整代码在 https://github.com/FrisoPrograms/MEANpress/tree/feature/initial-docker

【问题讨论】:

  • 这是开发环境吗?
  • @AvinKavish 我现在只是在本地开发,我还没有到可以在开发环境中试用它的地步

标签: angular docker docker-compose mean-stack


【解决方案1】:

试试:

ng serve --host 0.0.0.0

让 Angular 服务进程监听 0.0.0.0 而不是 localhost 上的请求。使用 --host 0.0.0.0 的原因是默认的 localhost 不起作用,因为服务器默认绑定到 localhost,在这种情况下,服务器需要监听所有请求,而不仅仅是来自 localhost 的请求。

【讨论】:

  • 谢谢一百万。这让我发疯了。
猜你喜欢
  • 1970-01-01
  • 2018-12-16
  • 2018-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-08
  • 1970-01-01
相关资源
最近更新 更多