Skip to content

Docker:构建elm_model运行容器

About 725 wordsAbout 2 min

docker容器构建fastapi

2025-02-25

项目使用Python作为编程语言,使用FastAPI作为Web框架,现在需要将写好的项目代码部署到服务器,使用Docker快速部署

容器中的FastAPI-Docker

一、项目目录结构

├── app
   ├── dto
   ├── forecast
   ├── main.py
   ├── __pycache__
   ├── requirements.txt
   ├── test
   └── test_main.http
├── Dockerfile
└── requirements.txt

二、requirement.txt内容

使用pipreqs来生成requirement.txt文件

pip install pipreqs

pipreqs --ignore .venv --force

--ignore: 忽略执行--force : 强制覆盖requirements.txt的内容

项目使用的是Python Venv的虚拟环境,环境依赖文件直接放到项目中的.venv目录下,开始使用pipreqs来生产requirement.txt,尝试之后没有成功,最后还是切换到当前虚拟环境,使用pip freeze生成requirement.txt.

pip3 freeze > requirements.txt

三、Dockerfile内容

构建镜像

docker build -t elm_model .
docker run --name elm_model -p 8000:8000 -itd elm_model

--restart=always # 设置自动重启
--security-opt seccomp:unconfined  # 处理打镜像的docker版本和使用镜像的docker版本不同问题,比如这次,打镜像的是20.10.21的docker,使用镜像的是20.10.9的docker

// 内网使用下面部署
// docker run --name elm_model --security-opt seccomp:unconfined -p 8000:8000 -itd elm_model

四、问题

4.1、如果服务器没有办法联网,就没有办法通过pip install来安装依赖包,怎么办?

  • 就直接把依赖包都上传上去,不下载。

  • 在有网络的环境上打镜像,然后把镜像丢到正式环境上面。⭐️

解决Docker容器运行OpenBLAS blas_thread_init: pthread_create failed for thread 1 of 32: Operation not ...

4.2、导入导出镜像

压缩导出:docker save elm_model:latest | gzip > docker_image_elm_model.tar.gz

压缩导入:gunzip -c docker_image_elm_model.tar.gz | docker load

Changelog

6/3/25, 1:49 AM
View All Changelog
  • d3a6d-Merge branch 'dev1'on

求求了,快滚去学习!!!

求求了求求了,快去学习吧!

【题单】贪心算法

不知道方向的时候,可以多看看书,书会给你指明下一步该干什么,加油!