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

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.0FROM $BASE_IMAGEWORKDIR /home/workspaceCOPY . /home/workspace/RUN pip install -r requirements.txtRUN pip install -r apps/agentfabric/requirements.txtENV 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.lryc.cn/news/508711.html

相关文章:

  • 在 Go 中利用 ffmpeg 进行视频和音频处理
  • 【机器学习】探索机器学习与人工智能:驱动未来创新的关键技术
  • React Refs 完整使用指南
  • 程控电阻箱应用中需要注意哪些安全事项?
  • C/C++基础知识复习(43)
  • 苍穹外卖-day05redis 缓存的学习
  • VSCode搭建Java开发环境 2024保姆级安装教程(Java环境搭建+VSCode安装+运行测试+背景图设置)
  • PHP MySQL 插入多条数据
  • Oracle安装报错:将配置数据上载到资料档案库时出错
  • JavaScript 中通过Array.sort() 实现多字段排序、排序稳定性、随机排序洗牌算法、优化排序性能,JS中排序算法的使用详解(附实际应用代码)
  • Deformable DETR:Deformable Transformers for End-to-End Object Detection论文学习
  • 机器学习-43-可解释性机器学习库LIME
  • 【Unity功能集】TextureShop纹理工坊(五)选区
  • Spring Cloud OpenFeign快速入门demo
  • 研发效能DevOps: Vite 使用 Element Plus
  • sfnt-pingpong -测试网络性能和延迟的工具
  • Kubernetes、Docker 和 Docker Registry 关系是是什么?
  • docker部署微信小程序自动构建发布和更新
  • 模仿elementui的Table,实现思路
  • Unity中使用环形缓冲区平滑抖动值
  • 【Yonghong 企业日常问题 06】上传的文件不在白名单,修改allow.jar.digest属性添加允许上传的文件SH256值?
  • SpringBoot使用 AOP 实现自定义日志记录并保存在Mysql
  • 谷歌开源最强天气预报AI模型 GenCast
  • C++打造局域网聊天室第十课: 客户端编程及数据发送
  • Nginx整合Lua脚本
  • 【C++】C++11 STL容器emplace方法原理剖析
  • QT-简单视觉框架代码
  • AI新书推荐:深度学习和大模型原理与实践(清华社)
  • [spring]处理器
  • 重温设计模式--中介者模式