您可以按照以下步骤将最简单的flask例子部署到 Docker 容器中,基础镜像为nvidia/cuda:11.3.1-cudnn8-devel-ubuntu20.04,并使用 uWSGI + Nginx + Supervisor 将其部署到生产环境中
时间: 2023-06-18 15:03:25 浏览: 249
用uWSGI和Nginx部署Flask项目的方法示例
5星 · 资源好评率100%
当然可以,以下是步骤:
1. 创建一个 Flask 应用程序,例如 `app.py`,并在其中定义一些路由和视图函数。例如:
```python
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
```
2. 使用以下 Dockerfile 来构建 Docker 镜像:
```Dockerfile
FROM nvidia/cuda:11.3.1-cudnn8-devel-ubuntu20.04
# 安装依赖
RUN apt-get update && apt-get install -y \
python3 \
python3-pip \
nginx \
supervisor \
&& rm -rf /var/lib/apt/lists/*
# 设置工作目录
WORKDIR /app
# 复制 Flask 应用程序
COPY app.py /app/app.py
# 安装 Flask 和 uWSGI
RUN pip3 install Flask uwsgi
# 配置 Nginx
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
COPY nginx.conf /etc/nginx/sites-available/default
# 配置 Supervisor
COPY supervisord.conf /etc/supervisor/conf.d/
# 暴露端口
EXPOSE 80
# 启动命令
CMD ["/usr/bin/supervisord"]
```
3. 创建 Nginx 配置文件 `nginx.conf`:
```nginx
server {
listen 80;
server_name localhost;
location / {
include uwsgi_params;
uwsgi_pass unix:///tmp/uwsgi.sock;
}
}
```
4. 创建 Supervisor 配置文件 `supervisord.conf`:
```ini
[supervisord]
nodaemon=true
[program:uwsgi]
command=uwsgi --socket /tmp/uwsgi.sock --module app --callable app --processes 4 --threads 2
[program:nginx]
command=/usr/sbin/nginx
```
5. 使用以下命令构建 Docker 镜像:
```bash
docker build -t myapp .
```
6. 启动 Docker 容器:
```bash
docker run -d -p 80:80 myapp
```
现在,您的 Flask 应用程序应该已经部署到生产环境中,并且可以通过访问 `http://localhost` 来进行访问。
阅读全文