我如何 运行 Angular 使用 docker-compose?
How can I run Angular using docker-compose?
我正在尝试从头开始创建自己的 MEAN 解决方案,我想使用 docker-compose 来运行它。我已经成功地使节点服务器工作,但是当我尝试使用 docker 运行 Angular 客户端时,它不起作用.
只需使用 docker 我 运行 以下命令:
docker build -t ng-client
.
docker run -p 4200:4200 ng-client
从输出来看,它似乎在工作,但是当我转到 http://localhost:4200/ 时,我收到本地主机不工作的消息。
我在使用 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
尝试:
ng serve --host 0.0.0.0
让 angular 服务进程在 0.0.0.0 而不是本地主机上侦听请求。使用 --host 0.0.0.0 的原因是默认的 localhost 将不起作用,因为服务器默认绑定到 localhost,在这种情况下,服务器需要侦听所有请求,而不仅仅是来自 localhost 的请求。
我正在尝试从头开始创建自己的 MEAN 解决方案,我想使用 docker-compose 来运行它。我已经成功地使节点服务器工作,但是当我尝试使用 docker 运行 Angular 客户端时,它不起作用.
只需使用 docker 我 运行 以下命令:
docker build -t ng-client
.
docker run -p 4200:4200 ng-client
从输出来看,它似乎在工作,但是当我转到 http://localhost:4200/ 时,我收到本地主机不工作的消息。
我在使用 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
尝试:
ng serve --host 0.0.0.0
让 angular 服务进程在 0.0.0.0 而不是本地主机上侦听请求。使用 --host 0.0.0.0 的原因是默认的 localhost 将不起作用,因为服务器默认绑定到 localhost,在这种情况下,服务器需要侦听所有请求,而不仅仅是来自 localhost 的请求。