Я разрабатываю несколько микросервисов, и мой внешний интерфейс при запуске с использованием docker-compose для создания внешнего интерфейса и внешнего интерфейса не может найти home.html из папки шаблонов.Когда я запускаю приложение как обычное приложение Flask, оно работает нормально.Эта проблема возникает только при включении Docker.
├── backend
│ ├── app.py
│ ├── Dockerfile
│ └── requirements.txt
├── deployment.yaml
├── docker-compose.yaml
├── frontend
│ ├── app.py
│ ├── Dockerfile
│ ├── requirements.txt
│ └── templates
│ ├── home.html
│ ├── includes
│ │ ├── _formhelpers.html
│ │ ├── _messages.html
│ │ └── _navbar.html
│ └── layout.html
└── README.md
frontend / app.py
from flask import Flask, jsonify, render_template
import requests
import json
import os
app = Flask(__name__)
@app.route("/hello_world")
def hello_world():
be_host = os.getenv('BACKEND_SERVICE_HOST', 'backend')
be_port = os.getenv('BACKEND_SERVICE_PORT', '5000')
url = 'http://{}:{}/hello_world'.format(be_host, be_port)
try:
res = requests.get(url)
except Exception:
return "Error with {}".format(url)
dictFromServer = res.json()
return render_template('home.html', msg=dictFromServer['message'])
if __name__=='__main__':
app.run(debug=True, host='0.0.0.0')
Dockerfile
FROM python:3.6-alpine
WORKDIR /app
COPY requirements.txt /app
COPY app.py /app
RUN pip install -r requirements.txt
EXPOSE 5000
ENTRYPOINT ["python"]
CMD ["app.py"]
needs.txt
Flask
requests
jsonify