【Docker】安装部署项目流程(Pycharm版)

安装部署步骤

1.准备项目

第一步要准备好你所需要部署的项目,确保在工作目录下所以程序.py文件正常调用并能正确运行


如上,main要在工作目录中能跑通,这里有一点需要注意

在IDE src不要标记为源代码根目录,观察一下是否能跑通代码

若跑不通,将import中调包前添加src.可解决,修改如下

2.添加三份文件

1.Dockerfile

FROM .../nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04  # 容器系统ARG VENV_NAME="your_program"  # docker镜像项目名
ENV VENV=$VENV_NAME  # 环境名
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8ENV DEBIAN_FRONTEN=noninteractive
ENV PYTHONUNBUFFERED=1
SHELL ["/bin/bash", "--login", "-c"]# 系统搭建的一些常用安装包,ubuntu系统常用(项目需要的安装包也可以一并安上)
RUN apt-get update -y --fix-missing
RUN apt-get install -y git build-essential curl wget ffmpeg unzip git git-lfs sox libsox-dev && \apt-get clean && \git lfs install# ==================================================================
# conda install and conda forge channel as default
# ------------------------------------------------------------------
# Install miniforge
# 这里下载一些离线安装包(可见博客说明)
COPY install_package/Miniforge3-Linux-x86_64.sh /root/miniforge.sh
RUN chmod +x /root/miniforge.sh
# RUN wget --quiet https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh -O ~/miniforge.sh && \RUN /bin/bash /root/miniforge.sh -b -p /opt/conda && \rm /root/miniforge.sh && \ln -s /opt/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh && \echo "source /opt/conda/etc/profile.d/conda.sh" >> /opt/nvidia/entrypoint.d/100.conda.sh && \echo "source /opt/conda/etc/profile.d/conda.sh" >> /root/.bashrc && \echo "conda activate ${VENV}" >> /opt/nvidia/entrypoint.d/110.conda_default_env.sh && \echo "conda activate ${VENV}" >> $HOME/.bashrcENV PATH /opt/conda/bin:$PATH# 设置清华镜像源,增加超时时间和重试次数
RUN conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ && \conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ && \conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r/ && \conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro/ && \conda config --add channels conda-forge && \conda config --set channel_priority strict && \conda config --set remote_connect_timeout_secs 30 && \conda config --set remote_read_timeout_secs 30 && \conda config --set remote_max_retries 3
# ------------------------------------------------------------------
# ~conda
# ==================================================================# 创建虚拟环境(环境名上面已经定义了,和conda创建虚拟环境命令一致)
RUN conda create -y -n ${VENV} python=3.9
ENV CONDA_DEFAULT_ENV=${VENV}
ENV PATH /opt/conda/bin:/opt/conda/envs/${VENV}/bin:$PATH# 复制到工作路径
COPY . /workspace/your_programWORKDIR /workspaceENV PYTHONPATH="${PYTHONPATH}:/workspace/your_program"# conda pip 下载项目所需包(可以用清华源、阿里加速)
RUN conda activate ${VENV} && conda install -y -c conda-forge pynini==2.1.5
# https://pypi.tuna.tsinghua.edu.cn/simple/torch/
# https://pypi.tuna.tsinghua.edu.cn/simple/torchaudio/
RUN conda activate ${VENV} && cd your_program && \pip install --default-timeout=100 -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/# 确定工作路径
WORKDIR /workspace/your_program

如果使用阿里云,可能需要添加 --trusted-host=mirrors.aliyun.com


2.requirements.txt

对于一些比较大的安装包.whl文件可以先下好放在项目中,在requirements.txt文件中以以下形式进行安装,如下

./install_package/torch-2.3.0-cp39-cp39-manylinux1_x86_64.whl
./install_package/torchaudio-2.3.0-cp39-cp39-manylinux1_x86_64.whl
./install_package/nvidia_cudnn_cu12-8.9.2.26-py3-none-manylinux1_x86_64.whl
modelscope
huggingface
huggingface_hub
funasr>=1.1.3
numpy<=1.26.4
gradio
fastapi>=0.111.1
requests

一种是通过本地离线包下载(对于比较大的文件),一种是通过清华源/阿里拉取

3.docker-compose.yml

一些系统配置(容器理解为一个独立的ubuntu系统,下面作为运行本项目的一些系统配置)

version: '3.3'
services:your_program:image: your_program:v1.0container_name: your-program-serverworking_dir: /workspace/your-programcommand: python3 main.pyvolumes:- /usr/share/zoneinfo:/usr/share/zoneinfo- /etc/localtime:/etc/timezone:ro- ./logs:/workspace/your-program/logs- ./resources:/workspace/your-program/resourcesenvironment:- TZ=Asia/Shanghai- CUDA_DEVICE_ORDER=PCI_BUS_ID- CUDA_VISIBLE_DEVICES=1- SERVER_PORT=8666ports:- "8666:8666"restart: alwaysruntime: nvidia#    networks:
#      - test-network
#networks:
#  test-network:
#    external: true

- CUDA_VISIBLE_DEVICES=1

服务器如果有多张显卡,可以设成哪张卡可见(cuda:0就是读取可见卡的第一张)

3.将整个项目结构上传服务器

Pycharm在工具栏中有一个上传连接服务器的工具(推荐)

先配置

连接服务器(有密码形式、SSH等)

后上传

4.服务器打开项目目录

cd到项目总目录下

4.1从源码中构建docker镜像

docker build -t your_program:v1.0 .

4.2启动容器

docker-compose up -d# 查看启动情况
docker logs your-program-server

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/447699.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Vue】Vue扫盲(三)计算属性和监听器

【Vue】Vue扫盲&#xff08;一&#xff09;事件标签、事件修饰符&#xff1a;click.prevent click.stop click.stop.prevent、按键修饰符、及常用指令 【Vue】Vue扫盲&#xff08;二&#xff09;指令&#xff1a;v-for 、v-if、v-else-if、v-else、v-show 文章目录 1、 计算属…

|动漫爬取|001_djangodjango基于Spark的国漫推荐系统的设计与实现2024_tpd6q1o4

目录 系统展示 开发背景 代码实现 项目案例 获取源码 博主介绍&#xff1a;CodeMentor毕业设计领航者、全网关注者30W群落&#xff0c;InfoQ特邀专栏作家、技术博客领航者、InfoQ新星培育计划导师、Web开发领域杰出贡献者&#xff0c;博客领航之星、开发者头条/腾讯云/AW…

【3dgs】3DGS与NeRF对比

以下是 3DGS&#xff08;3D Geometry Sensing&#xff09;与 NeRF&#xff08;Neural Radiance Fields&#xff09;对比表格&#xff1a; 更加详细的资料&#xff0c;轻参考&#xff1a; NERF/3DGS 对比维度3DGS (3D Geometry Sensing)NeRF (Neural Radiance Fields)基本原理…

透过 Diffusion Transformer 探索生成式模型的技术演进

SiT: Exploring Flow and Diffusion-based Generative Models with Scalable Interpolant Transformers 一、前言 扩散模型为代表的生成式模型&#xff0c;以其深刻的还原论的哲学原理作为内在基础&#xff0c;辅以机器学习领域各类优秀的模型设计&#xff0c;在各个学术和应…

性能与体验登顶,海马云电脑重新定义行业,领跑未来工作与娱乐方式

&#xff08;图片来源&#xff1a;Pixels&#xff09; 一个行业的增长拐点正在到来。 数科星球原创 作者丨苑晶 编辑丨大兔 2024年&#xff0c;《黑神话悟空》来到。受此刺激&#xff0c;云电脑行业迎来发展的春天。 作为一款3A级游戏大作&#xff0c;其对图形处理单元&…

### 更新数据库时出错。原因:java.sql.SQLException: No database selected

更新数据库时出错。原因&#xff1a;java.sql.SQLException: No database selected 问题&#xff1a;原因&#xff1a;解决办法&#xff1a; 问题&#xff1a; 在基于idea环境中学习搭建mybatis框架时&#xff0c;MySQL数据库执行插入语句遇到以下异常&#xff1a; com.intel…

【含文档】基于Hadoop平台的大学多媒体教学管理系统(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定…

【嵌入式】手把手教你入门STM32的GPIO:初识GPIO输出

1.GPIO简介 STM32是一系列基于ARM Cortex-M内核的32位微控制器。该系列微控制器广泛应用于计算机、通讯、工业自动化、消费电子、汽车电子、医疗仪器及家庭电器等领域。该系列控制器具有高性能、低功耗、智能化等特点。其中&#xff0c;GPIO就是STM32控制器中的一种重要的通用输…

《向量数据库指南》——Naive RAG的复杂问题困境

哈哈,各位向量数据库领域的探索者们,大家好!我是大禹智库的向量数据库高级研究员王帅旭,也是《向量数据库指南》的作者。今天,咱们就来聊聊Naive RAG(Retrieval-Augmented Generation,检索增强生成)方法的那些事儿,特别是它在处理复杂问题时的局限性。相信我,这篇文章…

ros1编译wpr_simulation库

目录 安装项目依赖包编译将环境参数加载到终端程序中运行编译好的ros程序 首先你下载好这个库以后。 安装项目依赖包 scripts库中&#xff0c;存放的是一些依赖项安装脚本以及python脚本。 进入到这个路径的终端。 输入 ./install_for_noetic.sh编译 输入下面命令&#xf…

轮转数组【补充】

本章概述 前情回顾方法一方法二总结彩蛋时刻&#xff01;&#xff01;&#xff01; 前情回顾 点击&#xff1a;轮转数组。 在上面一章的《初阶数据结构【1】》里面&#xff0c;咱们通过轮转数组引出了算法复杂度的概念。咱们当时写的那个算法有点小问题&#xff0c;38个测试用…

SpringBoot技术在人事管理中的应用:系统开发全解析

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常适…

windows下载配置CAS单点登录

下载 github下载 云盘瞎子啊 版本对应jdk&#xff0c;根据自身环境下载对应版本的cas。 安装 下载完成之后解压 按照.md文档执行打包命令 build.bat package配置 如果不用https&#xff0c;需要进行以下配置&#xff1a; 修改配置文件application.properties 在最后一行…

《大规模语言模型从理论到实践》第一轮学习--Fine-tuning微调

第一轮学习目标&#xff1a;了解大模型理论体系 第二轮学习目标&#xff1a;进行具体实操进一步深入理解大模型 从大语言模型的训练过程来理解微调 大预言模型训练主要包含四个阶段&#xff1a;预训练、有监督微调、奖励建模、强化学习。 预训练&#xff08;Pretraining&…

大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

注意力机制2024持续发力!多尺度卷积+Attention一举拿下高分!模型准确率几乎100%

如何构建出更强大灵活的深度学习模型&#xff1f;或许我们可以考虑一个先进的方法&#xff1a;多尺度卷积注意力机制。 多尺度卷积先提供丰富的特征信息&#xff0c;注意力机制再从中筛选出关键信息&#xff0c;这样结合起来&#xff0c;不仅可以进一步提高模型的识别精度和效…

ubuntu中多cuda版本兼容问题

当ubuntu中已经有老版本的cuda时&#xff0c;按正常步骤直接下载新的cuda和cudnn&#xff0c;只需要注意在下载新的cuda版本时&#xff0c;出现“A symlink already exists at /usr/local/cuda. Update to this installation?”&#xff0c;选择“no”&#xff0c;之后按如下的…

redis与springBoot整合

前提 要实现,使用Redis存储登录状态 需要一个完整的前端后端的项目 前端项目搭建 解压脚手架 安装依赖 配置请求代理 选做: 禁用EsLint语法检查 Vue Admin Template关闭eslint校验&#xff0c;lintOnSave&#xff1a;false设置无效解决办法_lintonsave: false-CSDN博客 …

【精选】基于SpringBoot+Vue的生鲜交易系统设计与实现(源码+定制+开发)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

智能健康推荐:SpringBoot技术应用

5系统详细实现 5.1 管理员模块的实现 5.1.1 用户管理 基于智能推荐的卫生健康系统的系统管理员可以管理用户管理&#xff0c;可以对用户管理信息添加修改删除以及查询操作。具体界面的展示如图5.1所示。 图5.1 用户管理信息管理界面 5.1.2 科室类型管理 系统管理员可以查看对…