使用Nginx Docker化VueJS无法使用http:// localhost访问后端应用程序

时间:2018-08-27 10:50:34

标签: docker nginx vue.js

我跟随this section为我的vuejs应用程序创建了一个docker镜像。我可以在开发模式下使用localhost http://localhost:8081访问后端应用程序(春季启动)。我无法从dockerized vuejs应用程序访问它。它使用OPTIONS方法调用URL,并返回(失败)状态。我已经在后端应用程序中实现了cors过滤器。

我使用docker build -t vuejs/frontend .构建图像并使用 docker run -td -p 8082:80 --rm --name frontend vuejs/frontend。我可以访问我的主页。如果在--net="host"命令中设置了docker run ...,则无法访问主页。我究竟做错了什么?如何成功调用我的后端api?

Dockerfile:

# build stage
FROM node:9.11.1-alpine as build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build

# production stage
FROM nginx:1.13.12-alpine as production-stage
COPY --from=build-stage /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

server.js

const express = require('express');
const serveStatic = require('serve-static');

app = express();
app.use(serveStatic('./dist'));
const port = process.env.PORT || 8082;
app.listen(port);
console.log('server started ', port);

Docker ps

CONTAINER ID        IMAGE                              COMMAND                  CREATED             STATUS              PORTS                                                                                                                            NAMES
6727648105dc        vuejs/frontend               "nginx -g 'daemon of…"   2 minutes ago       Up 2 minutes                                                                                                                                         frontend
221c6554f99e        java/backend                 "java -Djava.securit…"   3 minutes ago       Up 3 minutes                                                                                                                                         backend
73d29d1e1986        database/phoenix_hbase:4.10.0   "/bin/sh -c /opt/hba…"   3 hours ago         Up 3 hours          0.0.0.0:2181->2181/tcp, 0.0.0.0:60000->60000/tcp, 0.0.0.0:60010->60010/tcp, 0.0.0.0:60020->60020/tcp, 0.0.0.0:60030->60030/tcp   docker-hbase

0 个答案:

没有答案