【发布时间】:2020-07-17 00:04:16
【问题描述】:
您好,我正在尝试使用 nginx 反向代理创建 python 应用程序和 redis,但是当我运行 docker-compose 文件时,它会运行所有容器,但是当我转到 localhost:90 时,它显示的是 nginx 页面,而不是定义的页面在python文件中。我正在关注本教程here
Docker 文件:
FROM python:3
RUN pip install flask
Python 文件:
from flask import Flask
app = Flask(__name__)
# to connect redis
# use host "redis_app"
# use port "6379"
# use password "add_password_here"
@app.route('/')
def hello():
return 'Hello NGINX reverse proxy'
if __name__ == "__main__":
app.run(host='0.0.0.0', port=5000)
Docker-compose-file
version: '3.1'
services:
nginx:
image: nginx:latest
container_name: nginx_reverseproxy
depends_on:
- flask
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
networks:
- docker-network
ports:
- 90:80
flask:
build:
context: ./
dockerfile: Dockerfile
image: flask:v1
container_name: flask_webapp
volumes:
- ./:/flask_code/
environment:
- FLASK_APP=/flask_code/main.py
command: python /flask_code/main.py
networks:
docker-network:
aliases:
- flask_webapp
ports:
- 8080:5000
depends_on:
- redis
redis:
image: redis
networks:
docker-network:
nginx.conf
server {
listen 90;
server_name localhost;
location / {
proxy_pass http://flask_webapp:5000/;
proxy_set_header Host "localhost";
}
}
【问题讨论】:
标签: python docker nginx docker-compose dockerfile