当前位置: 首页 > article >正文

dockerfile文档编写(1):基础命令

目录

  • Modelscope-agent
    • ARG
    • FROM
    • WORKDIR
    • COPY
    • RUN
    • ENV
    • CMD
  • run_loopy

Modelscope-agent

ARG BASE_IMAGE=registry.cn-beijing.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda12.1.0-py310-torch2.1.2-tf2.14.0-1.12.0

FROM $BASE_IMAGE

WORKDIR /home/workspace

COPY . /home/workspace/

RUN pip install -r requirements.txt

RUN pip install -r apps/agentfabric/requirements.txt

ENV PYTHONPATH="${PYTHONPATH}:/home/workspace"

CMD ["python", "apps/agentfabric/app.py"]

ARG

  • ARG 指令,用于定义构建 Docker 镜像时可以使用的变量.
    这个参数设置了一个基础镜像地址,指向阿里云(registry.cn-beijing.aliyuncs.com)的 ModelScope 仓库
    这个基础镜像包含了以下主要组件:
    Ubuntu 22.04 操作系统
    CUDA 12.1.0(用于 GPU 支持)
    Python 3.10
    PyTorch 2.1.2
    TensorFlow 2.14.0
    ModelScope 1.12.0

FROM

  • FROM 指令指定了构建新镜像所基于的基础镜像

WORKDIR

  • 设置容器内的默认工作目录为 /home/workspace
    如果该目录不存在,Docker 会自动创建它
    这条指令之后的 RUN、CMD、ENTRYPOINT、COPY 和 ADD 指令都会以这个目录为基准执行
    类似于在容器中执行 cd /home/workspace
    这是一个常见的做法,可以让容器内的文件操作更加清晰和可控,而不是都堆积在根目录下。

COPY

  • 简单来说,这条命令会把构建 Docker 镜像时的上下文(通常是项目根目录)中的所有内容,复制到容器内的 /home/workspace/ 目录中。

RUN

  • 这是一个在Docker构建过程中非常常见的步骤,用于确保容器中安装了应用程序所需的所有Python依赖包。requirements.txt文件通常包含了项目所需的所有Python包及其版本号。
    在这里插入图片描述
    且要注意不同目录下的requirements,都需要run

ENV

  • ENV 是 Dockerfile 的指令,用于设置环境变量
    PYTHONPATH 是 Python 用来查找模块和包的路径
    ${PYTHONPATH} 保留了原有的 PYTHONPATH 值
    :/home/workspace 将 /home/workspace 目录添加到 Python 的模块搜索路径中

CMD

这是 Dockerfile 中的 CMD 指令,用于指定容器启动时要执行的默认命令

run_loopy

# 使用支持GPU的基础镜像
FROM python:3.8
# ARG BASE_IMAGE=registry.cn-beijing.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda12.1.0-py310-torch2.1.2-tf2.14.0-1.12.0
# FROM $BASE_IMAGE

# 设置工作目录
WORKDIR /home/workspace

# 将当前目录下的所有文件复制到容器中的/home/workspace目录下
COPY . /home/workspace/

# 配置pip使用多个镜像源
RUN pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/simple
COPY ./wheels /home/workspace/wheels
RUN pip install /home/workspace/wheels/tf_estimator_nightly-2.8.0.dev2021122109-py2.py3-none-any.whl
RUN pip install --upgrade pip
RUN pip install -r requirements1.txt


# 设置Python路径
ENV PYTHONPATH="${PYTHONPATH}:/home/workspace"

# 运行脚本
CMD ["python", "run_loop.py"]

使用说明:

  1. 将此Dockerfile放在项目根目录下

  2. 构建镜像:

docker build -t drl_tcv .
  1. 运行容器:
docker run drl_tcv

build完之后,run运行跑起来了
在这里插入图片描述
觉得这种构建环境镜像的方式,一方面不会改动本地的环境,另一方面比sftp传输快好多,因为文件特别大,中途要是断了还得重下,下载的话可以用镜像源其实还是挺快的。
大文件的传输中断很浪费时间
在这里插入图片描述


http://www.kler.cn/a/451502.html

相关文章:

  • 24 go语言(golang) - gorm框架安装及使用案例详解
  • 【NLP高频面题 - 高效微调篇】什么是提示微调?
  • 以太网通信--读取物理层PHY芯片的状态
  • Kubernetes、Docker 和 Docker Registry 关系是是什么?
  • 【零基础保姆级教程】制作自己的数据集(二)——Labelme的安装与使用及常见的报错解决方法
  • Vue3中路由跳转之后删除携带的query参数
  • DX12 快速教程(2) —— 渲染天蓝色窗口
  • html + css 淘宝网实战
  • 矩阵方程组求解——Markov过程
  • 黑马Java面试教程_P2_Redis
  • 圆形视频怎么制作?裁剪圆形视频的方法
  • 重温设计模式--单例模式
  • 服务器经常遇到端口被占用的情况怎么办?
  • 《机器学习》流形学习 流形 局部线性嵌入 等距映射(Isomap: 测地线MDS降维
  • 【代码随想录】刷题记录(83)-最大子数组和
  • 利用Java爬虫获取苏宁易购商品详情
  • 决策树(理论知识1)
  • 突发!GitLab将停止对中国区用户提供GitLab.com账号服务
  • 大语言模型中的Agent;常见的Agent开发工具或框架
  • 我的编程语言学习笔记
  • Airwallex空中云汇实现独立站安全高效收款
  • 《三角洲行动》游戏运行时提示“缺失kernel32.dll”:问题解析与解决方案
  • springboot、springcloudnacos、netty-socketio实现im集群弹性伸缩和节点上下线监听
  • 工业相机镜头选型知识详解
  • 学习笔记(prism--视频【WPF-prism核心教程】)--待更新
  • 突围边缘:OpenAI开源实时嵌入式API,AI触角延伸至微观世界