Fri*_*iso 1 docker mean-stack docker-compose angular
我正在尝试从头开始创建我自己的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
Run Code Online (Sandbox Code Playgroud)
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'
Run Code Online (Sandbox Code Playgroud)
完整代码位于 https://github.com/FrisoPrograms/MEANpress/tree/feature/initial-docker
尝试:
ng serve --host 0.0.0.0
Run Code Online (Sandbox Code Playgroud)
让角度服务进程监听 0.0.0.0 而不是 localhost 上的请求。使用 --host 0.0.0.0 的原因是默认的 localhost 将不起作用,因为服务器默认绑定到 localhost,在这种情况下,服务器需要侦听所有请求,而不仅仅是来自 localhost 的请求。
| 归档时间: |
|
| 查看次数: |
4854 次 |
| 最近记录: |