Docker部署Gradio项目

2022-04-28  本文已影响0人  Cui_Shu
使用Docker简单部署Gradio项目

创建 main.py 文件,在此文件中编辑gradio内容

import gradio as gr
  
def greet(name):
    return "Hello " + name + "!!"

demo = gr.Interface(fn=greet, inputs="text", outputs="text")

if __name__ == "__main__":
    demo.launch(server_name="0.0.0.0")  
    # 注意:gradio启动项目后默认地址为127.0.0.1;使用docker部署需要将地址修改为0.0.0.0,否则会导致地址访问错误
    # 默认端口为7860,如需更改可在launch()中设置server_port=7000
~                                      

编辑 requirements.txt 文件,将项目所有需要的包添加到此文件

gradio==2.9.4

编辑 Dockerfile 文件

# Use an official Python runtime as a parent image
FROM python:3.7.4-slim

# Set the working directory to /app
WORKDIR /app

# Copy the current directory contents into the container at /app
COPY . /app

# Install any needed packages specified in requirements.txt
RUN pip3 install --trusted-host pypi.python.org -r requirements.txt

# Define environment variable
ENV NAME gradio

# The default gradio port is 7860
EXPOSE 7860

# Run main.py when the container launches
CMD ["python", "main.py"]
~                            

其中涉及到的问题:
gradio项目启动后默认使用的地址为127.0.0.1,使用docker部署后导致外部无法访问
这是因为打包成镜像之后127.0.0.1只表示本机本容器中的一个虚拟网卡,只接受本容器中的应用相互通讯。虽然说服务已经成功启动了,但是外部却不能访问。所以将项目地址修改为0.0.0.0就可以正常运行了

上一篇下一篇

猜你喜欢

热点阅读