如何解决表达js中间件未使用docker-compose连接
我对nextjs比较陌生,并且对开发空间有所反应,请尝试解决这个问题,如果有什么直接的要求并且我没有看到,请原谅。
所以我试图调用一些API,该API提供一些我想在UI上呈现的数据。到目前为止,在本地它给了corrs问题,因此我添加了express js中间件来绕过此问题。 现在,我想使用Dockerfile在docker上部署此应用程序。所以我做对了,UI可以成功编译,但是中间件API调用失败。以下是我用来启动应用程序的Dockerfile,docker-compose文件。
客户端Dockerfile:
FROM node:latest
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
EXPOSE 3000
CMD [ "npm","run","dev" ]
服务器Dockerfile
FROM node:latest
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
EXPOSE 5000
CMD [ "npm","start" ]
docker-compose文件
version: "3"
services:
frontend:
container_name: awesome_web
build:
context: ./
dockerfile: Dockerfile
image: apaliwal/awesome_web
ports:
- "3000:3000"
volumes:
- ./:/usr/src/app
backend:
container_name: awesome_server
build:
context: ./server
dockerfile: Dockerfile
image: apaliwal/awesome_server
ports:
- "8080:8080"
volumes:
- ./server:/usr/src/app
client package.json
{
"name": "server","version": "1.0.0","description": "","main": "server.js","scripts": {
"test": "echo \"Error: no test specified\" && exit 1","start": "NODE_TLS_REJECT_UNAUTHORIZED='0' node server.js"
},"author": "","license": "ISC","dependencies": {
"express": "^4.17.1","node-fetch": "^2.6.0"
}
}
client package.json
{
"name": "project_name","main": "pages/index.js","private": true,"scripts": {
"dev": "next","build": "next build","start": "next start"
},[dependecies]
...
...
...
server.js
const express = require('express');
const http = require('http');
const fetch = require('node-fetch');
const app = express();
const server = http.createServer(app);
app.use(function(req,res,next) {
res.header("Access-Control-Allow-Origin","*");
next();
});
app.get('/issues/:projectID',(req,res) => {
fetch(`[url]`,{
headers: [auth],compress: false
})
.then(async (response) => {
console.log(response.status);
if(response.status >= 200 && response.status < 400) {
const jsonResponse = await response.text();
res.writeHead(200,{'Content-Type': 'application/json'});
res.end(jsonResponse);
}
})
.catch((err) => {
console.error(err);
res.writeHead(500,{'Content-Type': 'text/plain'});
res.end("Error occurred! Data not found/internal server error");
});
})
server.listen(8080,'127.0.0.1',err => console.log( err || "Your server is listening on "+'127.0.0.1'+" port "+'8080'));
请提供帮助,尝试了很多将端口暴露给8080的操作。
docker-compose up --build
确实在下面是它的控制台日志,它只是在网络日志中获取:
(failed)net::ERR_SOCKET_NOT_CONNECTED
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。