docker部署fastapi

docker部署fastapi项目结构 pycharm 结构 拷贝到 xftp 时的结构入口文件 main pyfromfastap FastAPI app get index name 欢迎首页 asyncdefinde return msg 欢迎来到 SayHello 项目依赖 具体内容可以通过 piplist 命令获得 requirements txt 如下 aiofiles 0 5 0

项目结构:
pycharm结构:

docker部署fastapi

拷贝到xftp时的结构 

docker部署fastapi

入口文件:main.py

from fastapi import FastAPI app = FastAPI() @app.get("/index", name="欢迎首页") async def index(): return {"msg": "欢迎来到SayHello!"} 

项目依赖:

具体内容可以通过pip list 命令看到:docker部署fastapi

requirements.txt文件可以通过一下方法获取:

if __name__ == '__main__': popen = os.popen('pip list') with open('requirements.txt', 'w') as f: for index, i in enumerate(popen): if index > 1: split = re.findall('[a-z,.,0-9]*\S', i) k = split[0].strip() v = split[-1].strip() f.write(k + "==" + v + '\n')

requirements.txt 内容如下

aiofiles==0.5.0 aniso8601==7.0.0 async-exit-stack==1.0.1 async-generator==1.10 certifi==2021.5.30 charset-normalizer==2.0.3 click==7.1.2 colorama==0.4.4 dnspython==2.1.0 email-validator==1.1.3 fastapi==0.67.0 graphene==2.1.9 graphql-core==2.3.2 graphql-relay==2.0.1 h11==0.12.0 idna==3.2 itsdangerous==1.1.0 Jinja2==2.11.3 MarkupSafe==2.0.1 orjson==3.6.0 pip==21.2.1 promise==2.3 pydantic==1.8.2 python-dotenv==0.19.0 python-multipart==0.0.5 PyYAML==5.4.1 requests==2.26.0 Rx==1.6.1 setuptools==57.4.0 six==1.16.0 starlette==0.14.2 typing-extensions==3.10.0.0 ujson==4.0.2 urllib3==1.26.6 uvicorn==0.13.4 watchgod==0.7 websockets==8.1

Dockerfile:

FROM python:3.9.5 COPY . /app RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime RUN echo 'Asia/Shanghai' >/etc/timezone WORKDIR ./app RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/ EXPOSE 8080 CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"]

xshell进入项目文件列表路径

构建镜像文件(命令结尾的小点“.” 别忘记了

docker build -t 项目名称 .

构建成功后运行容器即可:

docker run -d --name 新取的容器名称 -p 8000:80 刚刚构建的镜像名称

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/177405.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午7:35
下一篇 2026年3月26日 下午7:35


相关推荐

  • docker部署influx_docker容器部署

    docker部署influx_docker容器部署使用docker部署influxdbdocker-compose.yamlversion:”3″services:influxdb:image:influxdb:latestcontainer_name:influxdbenvironment:-INFLUXDB_DB=db0-INFLUXDB_ADMIN_ENABLED=true-INFLUXDB_ADMIN_USER=admin-INF.

    2022年10月19日
    6
  • Docker 容器网络访问原理,SNAT和DNAT

    Docker 容器网络访问原理,SNAT和DNAT1 容器网络访问原理图 2 网络访问的过程图 4 DOCKERSNAT 与 DNAT5 容器访问外部实现 6 外部访问容器实现

    2025年6月28日
    5
  • Docker核心技术学习笔记

    Docker核心技术文章目录Docker核心技术一 、Docker简介二、Docker安装前提说明Docker 的基本组成安装centos 7 安装docker启动hello-world底层原理三、Docker常用命令帮助命令镜像命令容器命令总结四、Docker 镜像**1、镜像是什么?****2、镜像特点****3、Docker镜像commit操作补充**4 、镜像生成的途径5、 镜像导入导出…

    2022年2月28日
    50
  • docker镜像操作_docker 本地镜像

    docker镜像操作_docker 本地镜像前言Docker的三大核心概念:镜像、容器、仓库。初学者对镜像和容器往往分不清楚,学过面向对象的应该知道类和实例,这跟面向对象里面的概念很相似我们可以把镜像看作类,把容器看作类实例化后的对象。|

    2022年7月31日
    11
  • docker镜像操作_docker 本地镜像

    docker镜像操作_docker 本地镜像前言Docker的三大核心概念:镜像、容器、仓库。初学者对镜像和容器往往分不清楚,学过面向对象的应该知道类和实例,这跟面向对象里面的概念很相似我们可以把镜像看作类,把容器看作类实例化后的对象。|

    2022年7月30日
    12
  • docker搭建kafka集群

    docker搭建kafka集群docker搭建kafka集群我在M1mbp上使用的以下镜像新建文件zk-kafka-docker-compose.ymlversion:”2″services:zookeeper:user:rootimage:docker.io/zookeeperports:-“12181:2181″environment:-ALLOW_ANONYMOUS_LOGIN=yesvolumes:-zoo

    2022年4月25日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号