使用Docker,将fastApi项目部署到linux服务器

摘要

这篇文章介绍了在Linux服务器上部署FastAPI项目的完整流程:创建目录、修改调用地址、编写Dockerfile并暴露9999端口,同时需在阿里云安全组开放该端口。将main.py和.env文件上传后,通过docker build -t his-agent构建镜像,再用docker run -d -p 9999:9999 --name his-agent his-agent运行容器,最后验证启动状态并测试接口可用性。

目录

[1. 在linux创建目录](#1. 在linux创建目录)

[2. 将fastApi调用springboot接口时的ip地址,改成springboot服务所部署的服务器ip](#2. 将fastApi调用springboot接口时的ip地址,改成springboot服务所部署的服务器ip)

[3. 在fastApi项目中,创建docker部署所需的文件](#3. 在fastApi项目中,创建docker部署所需的文件)

[4. 提前开一下阿里云服务器安全组(防火墙)的9999端口](#4. 提前开一下阿里云服务器安全组(防火墙)的9999端口)

[5. 将fastApi的相关文件,传入上述的linux目录](#5. 将fastApi的相关文件,传入上述的linux目录)

[6. 开始用docker部署fastApi项目](#6. 开始用docker部署fastApi项目)

[① 进入目录/home/jhj/develop/java_code/his_agent_docker/](#① 进入目录/home/jhj/develop/java_code/his_agent_docker/)

[② 构建 Docker 镜像](#② 构建 Docker 镜像)

[③ 运行docker容器](#③ 运行docker容器)

[④ 查看是否运行成功](#④ 查看是否运行成功)

最终:前端调用一下,查看是否可用


1. 在linux创建目录

2. 将fastApi调用springboot接口时的ip地址,改成springboot服务所部署的服务器ip

3. 在fastApi项目中,创建docker部署所需的文件

  • 创建Dockerfile文件:
bash 复制代码
# 基础镜像
FROM python:3.10-slim

# 工作目录
WORKDIR /app

# 安装依赖(使用清华镜像源加速)
RUN pip install --no-cache-dir \
    -i https://pypi.tuna.tsinghua.edu.cn/simple \
    fastapi \
    uvicorn \
    httpx \
    requests \
    python-dotenv \
    openai \
    langchain \
    langchain-openai

# 复制项目文件
COPY main.py .
COPY .env .

# 暴露端口
EXPOSE 9999

# 启动命令
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "9999"]

4. 提前开一下阿里云服务器安全组(防火墙)的9999端口

然后点击右下角"确定"按钮,即可。

5. 将fastApi的相关文件,传入上述的linux目录

传下面三个文件到服务器的 **/home/jhj/develop/java_code/his_agent_docker/**即可:

  • main.py

  • .env

  • Dockerfile

注意:.env在linux被视为隐藏文件(因为是.开头的文件),所以我们查看时应该用ls -la,而不是ll

示例:

6. 开始用docker部署fastApi项目

① 进入目录/home/jhj/develop/java_code/his_agent_docker/

② 构建 Docker 镜像

bash 复制代码
docker build -t his-agent .

查看是否构建成功,如下图,发现已经出现了名为"his-agent"的docker镜像,说明构建成功了:

③ 运行docker容器

bash 复制代码
docker run -d \
  --name his-agent \
  -p 9999:9999 \
  --restart=always \
  his-agent

④ 查看是否运行成功

bash 复制代码
# 查看容器是否在运行
docker ps | grep his-agent

# 查看启动日志
docker logs his-agent

演示:

最终:前端调用一下,查看是否可用

以上就是本篇文章的全部内容,喜欢的话可以留个免费的关注呦~~~

相关推荐
其实防守也摸鱼1 分钟前
Linux文本处理命令理论学习
linux·服务器·前端·数据库·sql·学习·安全
无足鸟ICT3 分钟前
【RHCA+】rpm命令(安装、升级、卸载和查询)
linux·运维·服务器
吹什么轩5 分钟前
linux系统复习:从冯·诺依曼到操作系统:一切的开场
linux·运维·服务器
程序员-Benothing5 分钟前
SSH从入门到精通:密钥登录、config配置、跳板机
linux·运维·服务器·ssh
一条泥憨鱼10 分钟前
【计算机网络】| 从 MAC 到 NAT 的跨网段通信全链路
服务器·网络·学习·计算机网络·macos
H.莓飛20 分钟前
【Linux】自主 Shell
linux·运维·服务器·c语言·开发语言·visual studio
bigcarp29 分钟前
Frida-dexdump 绕过app的Root检测
linux·运维·服务器
曦夜日长44 分钟前
主从 Reactor 高并发服务器实战 (一):前置知识与功能目标
运维·服务器
云和数据.ChenGuang1 小时前
AI 工程师相关就业岗位(细分,偏工程落地,由底层到上层)
服务器·开发语言·人工智能·python
LiaoWL1231 小时前
从零开始学 Linux(二):Shell 脚本入门与文本处理实战
linux·运维·服务器