gpt4 book ai didi

python - 如何连接两个运行 react 和 python 的 Docker 容器

转载 作者:行者123 更新时间:2023-12-02 19:49:24 24 4
gpt4 key购买 nike

我有 docker-compose.yml调出两个 docker 容器。

1.) 前端 - reactjs - 在端口上运行 3000

2.) 后端 - python ( flask ) - 在端口 8083 上运行

前端正在调用 python服务器 POST通过 url 的方法 "http://127.0.0.1:8083/api使用 axios ,但现在由于它们在两个容器中运行,我如何将前端连接到 python服务器通过那个 url?

这是我的 docker-compose.yml

version: "3.2"

services:

frontend:
build: ./frontend
environment:
CHOKIDAR_USEPOLLING: "true"
volumes:
- /app/node_modules
- ./frontend:/app
ports:
- 80:3000
depends_on:
- backend

backend:
build: ./backends/jananath
volumes:
- ./backends/jananath:/usr/src/app
environment:
FLASK_APP: /usr/src/app/server.py
FLASK_DEBUG: 1
FLASK_RUN_EXTRA_FILES: "/usr/src/app/banuka.txt"
ports:
- 5000:8083

这是 server.py python 服务器

from flask import Flask, render_template, request, url_for, redirect
import os
from os import path, walk
from flask_cors import CORS

app = Flask(__name__)
CORS(app)

PORT = 8083

@app.route('/api', methods=['POST', 'GET'])
def upload_file():
file = request.files['file']
filename = file.filename

print(filename)

filepath = os.path.abspath(filename)
print(filepath)
response_ = {}
response_['filename'] = str(filename)
response_['filepath'] = str(filepath)
return response_


if __name__ == '__main__':
app.run(host='0.0.0.0', port=PORT, extra_files=extra_files)

这是 axios调用POST方法来自 front-end对此server.py

const onFormSubmit = async (e) => {
e.preventDefault();

const formData = new FormData();
formData.append("file", file);

try {

const res = await axios.post("http://127.0.0.1:8083/api", formData, { // this url should change now?
headers: {
"Content-Type": "multipart/form-data",
"Access-Control-Allow-Credentials": "true",
"crossorigin": "true",
},
});

const {filename, filepath} = res.data;

setUploadedFile({filename, filepath});
} catch (error) {
console.log(error);
}
};

我认为这里的问题是 URL 现在已更改,但我不知道如何解决。谁能告诉我如何解决这个问题以及我应该访问的正确 URL 是什么?

谢谢!

最佳答案

在你的 React 应用程序中尝试 backend:8083,你将需要重建你的 React 图像。

关于python - 如何连接两个运行 react 和 python 的 Docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61843835/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com