使用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

演示:

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

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

相关推荐
xhaxy1 小时前
docker
docker·容器·eureka
刚入门的大一新生3 小时前
Linux-进程控制
linux·运维·服务器·c++
上火的金鱼妹3 小时前
K8S基础组件作用和关系整理
linux·运维·服务器·kubernetes
一技安身4 小时前
【信创】Docker‑Compose V2 两种离线部署(独立模式、插件模式)简易教程
java·docker·eureka
醉颜凉4 小时前
网络安全必学:粘性MAC地址(Sticky MAC)原理与应用全解析
运维·服务器·网络·安全·web安全
晊晌_h5 小时前
嵌入式从0到精通——Linux C|TCP 并发服务器实现方案详解
服务器·开发语言·tcp/ip
广州灵眸科技有限公司5 小时前
从手动三步到上电即连:4G模组systemd开机自连方案
linux·运维·服务器·开发语言·网络·人工智能·php
深念Y5 小时前
【保姆级教程】Proxmox VE (PVE) 安装 FreeBSD 完整指南
服务器·unix·系统·pve·freebsd·虚拟化平台
青 春 记 忆6 小时前
零基础入门python66:FastAPI AI标题、摘要和标签
python·fastapi·后端开发
子非鱼a7 小时前
【WEB】[SWPU2019]Web1
java·服务器·前端