【发布时间】:2020-10-12 03:09:15
【问题描述】:
我能够通过 npm start 为我的 Angular UI 应用程序运行。但是,当我将 API 和 UI 移到 docker 中时,我一直在点击“无法访问此站点”。谁能帮我检查一下脚本哪里出错了?
**API Dockerfile:**
FROM node:10.16
WORKDIR /usr/src/app/api
COPY package*.json ./
RUN npm install
EXPOSE 3000
CMD ["npm", "run", "dev"]
这是我的 api 启动脚本:
"dev": "nodemon index.js"
**UI Dockerfile**
FROM node:10.16
WORKDIR /usr/src/app/ui
COPY package*.json ./
RUN npm install -g @angular/cli @angular-devkit/build-angular && npm install
EXPOSE 4200
CMD ["npm", "start"]
这是我的 UI 启动脚本:
"start": "ng serve --host 0.0.0.0 --port 4200", *** 有人建议添加 --host 和 --port,但我还是遇到了同样的错误。
这是我的 docker-compose.yml 文件:
version: '3'
services:
app-api:
build:
context: ./api
dockerfile: Dockerfile-dev
ports:
- "3000:3000"
container_name: app-api
volumes:
- ./api:/usr/src/app/api
- /usr/src/app/api/node_modules
app-ui:
build:
context: ./ui
dockerfile: Dockerfile-dev
ports:
- "4200:4200"
container_name: app-ui
volumes:
- ./ui:/usr/src/app/ui
- /usr/src/app/ui/node_modules
nginx:
image: "nginx:latest"
ports:
- 8080:8080
volumes:
- ./proxy/conf.d:/etc/nginx/conf.d
depends_on:
- app-ui
- app-api
我添加了 nginx:
server {
listen 8080;
server_name localhost;
location / {
proxy_pass http://app-ui:4200;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
location /api {
proxy_pass http://app-api:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
在构建和运行 docker-compose up 时没有错误。
我正在使用 Windows 10 docker 工具箱
【问题讨论】:
标签: node.js angular docker nginx docker-compose