【发布时间】:2018-06-08 14:33:47
【问题描述】:
通过以下设置,我可以看到我的网站,但我在尝试注册时收到 ERR_EMPTY_RESPONSE。
当我注册时,我正在向API.js 发出 HTTP 请求
它在user.js 中创建/更新架构。
这通常在不使用 Docker/Nginx 时有效。
我尝试直接连接到容器图像“mongo”,我尝试了0.0.0.0:27017
,但我感觉我的 app.js 最初并没有连接到 Mongodb。
即使到/main /profile 等的路由仍然有效。所以我假设 app.js 已通过 index.html 调用
我觉得完成这项工作是一件小事,但现在花了几个小时,我很挣扎。我没有使用 CORS,因为我使用的是 Nginx。我对这些概念很陌生,但我认为 Nginx 作为反向代理不使用 CORS?
在docker-compose.yml 中,当我将卷的目录更改为不存在的目录时,没有任何变化我仍然可以看到我的网站,好像它什么也没做,但是当我删除它给出的句子时我失败了,所以它被称为。不完全确定卷在此文件中的作用。
docker ps 给我以下输出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f58507ed0205 meanchat_web "nginx -g 'daemon ..." 55 seconds ago Up 54 seconds 0.0.0.0:80->80/tcp meanchat_web_1
cddfd8180f1b meanchat_node "nginx -g 'daemon ..." 2 hours ago Up 55 seconds 80/tcp, 0.0.0.0:3000->3000/tcp meanchat_node_1
79a013dd4e51 mongo "docker-entrypoint..." 2 hours ago Up 55 seconds 0.0.0.0:27017->27017/tcp meanchat_mongo_1
app.js:
var mongo= require('mongodb');
//var cors = require('cors');
var mongoose = require('mongoose');
var connect = require('./models/user')
connect.connect('mongodb://localhost/loginapp');
var db = mongoose.connection;
user.js:
module.exports.connect = function(mongoUri, promiseLib){
var mongoDB = mongoose.connect(mongoUri);
return mongoDB
};
DockerFile:
### STAGE 1: Build ###
# We label our stage as ‘builder’
FROM node:8.1.4-alpine as builder
COPY package.json package-lock.json ./
## Storing node modules on a separate layer will prevent unnecessary
pm installs at each build
RUN npm i && mkdir /ng-app && cp -R ./node_modules ./ng-app
WORKDIR /ng-app
COPY . .
## Build the angular app in production mode and store the artifacts
in dist folder
RUN $(npm bin)/ng build --prod
### STAGE 2: Setup ###
FROM nginx:1.13.3-alpine
## Copy our default nginx config
COPY nginx/default.conf /etc/nginx/conf.d/
## Remove default nginx website
RUN rm -rf /usr/share/nginx/html/*
## From ‘builder’ stage copy over the artifacts in dist folder to default
nginx public folder
COPY --from=builder ./dist /usr/share/nginx/html
CMD ["nginx", "-g", "daemon off;"]
docker-compose.yml:
version: '3'
services:
web:
build: ./
ports:
- "80:80"
links:
- node
volumes:
- "./dist :/usr/share/nginx/html"
node:
build: ./
ports:
- "3000:3000"
links:
- mongo
mongo:
image: mongo
ports:
- "27017:27017"
main.ts:
【问题讨论】:
标签: angular docker nginx mongoose