当前位置: 首页 > 知识库问答 >
问题:

dockerfile - 如何在Docker容器中同时配置Python和Rust环境?

奚卓
2024-09-12

Dockerfile构建镜像,同时需要python和rust环境,求助

# 使用基础 Python 镜像
FROM python:3.11.0-slim

# 更改apt源
RUN sed -i s@/deb.debian.org/@/mirrors.aliyun.com/@g /etc/apt/sources.list
# 安装rust所需
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
    curl \
    build-essential \
    libssl-dev && \
    rm -rf /var/lib/apt/lists/* && \
    apt-get clean

# 安装 Rust,因为没有科学上网,这样设置之后,可以从国内下载rust-init
# ** 或者有可能这里就有错,但是我看rust的相关东西都下载下来了 **
ENV RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup
ENV RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh  -s -- -y  

# 设置 Rust 环境变量
ENV PATH="${CARGO_HOME}/bin:${PATH}"

# 验证 Rust 安装** 这一步出错 **
RUN rustc --version && cargo --version

# 后面大概就说add代码到根目录,然后pip升级,pip安装所需库
ADD . . 
WORKDIR ...
RUN pip install --upgrade pip -i https://pypi.doubanio.com/simple/

RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

EXPOSE 8080

CMD ["python", "main.py"]

image.png
这个项目是其他人做的,他在python里面使用了一个包名叫“ploygons”,这个包好像是处理图像时比pandas还是什么快很多,但是这个包需要rust环境 cargo ,才能正常运行,在开发环境里安装rust环境还是比较轻松的。
但是我现在需要测试放在docker环境运行,然后打包发送给别人。

共有1个答案

雍马鲁
2024-09-12

看起来是设置环境变量那步出了问题,试试"$HOME/.cargo/env"或者"/root/.cargo/bin:${PATH}"呢

 类似资料:
  • 问题内容: 我是Docker的新手。我发现我们可以使用Dockerfile中的ENV指令设置环境变量。但是,如何在Dockerfile中为长命令设置bash别名? 问题答案: 基本上就像您经常做的那样,将其添加到用户的: 和往常一样,这仅适用于交互式外壳: 对于非交互式外壳,您应该创建一个小脚本并将其放在路径中,即: 如果您的别名使用参数(即-> ),则只需添加:

  • 在本地计算机中,sso服务和auth-service可以很好地工作。 但不在docker容器中, 问题是重定向到验证服务器超时。 不知道为什么,可能上面的sso tokenurl不对。如何化解?

  • 问题内容: 我们想在不同的环境(阶段/测试,生产等)中使用 Docker映像* 部署 Angular 2 应用程序 * 在本地开发时,我们通过http:// localhost:8080连接到后端REST API,但是当我们在不同的环境中部署时,我们想使用 相同的Docker映像 并连接到 不同的REST API端点 。 什么将是首选的方式 注入 该 配置 成 在运行时多克尔容器 ? 有没有办法通

  • 问题内容: 我正在运行Ubuntu Docker容器。我有挪威语键盘,需要使用挪威语字符(øæå)。 我的终端字符编码设置为UTF-8,我使用SSH连接到我的容器。但是,我无法键入挪威字符,也无法复制和粘贴挪威字符,也无法使用CTL + SHIFT + U + 00f8。 我试过了: 但是什么都没有改变。如何在Docker容器中设置语言环境和键盘? 问题答案: 将Dockerfile改编自 这摘自

  • 问题内容: 如何管理不同环境的配置变量/常量? 这可能是一个示例: 我的其余API可以访问,但是在Git版本控制下使用相同代码工作的朋友在Tomcat上部署了该API 。 假设我们有这样的东西: 如何根据环境动态注入API端点的正确值? 在PHP中,我通常使用文件来执行此类操作,将基本​​配置文件(config.xml)与用户名称识别的本地环境配置文件合并。但是我不知道如何在JavaScript中

  • 我主要用python编程,并且有一些虚拟环境方面的经验。我是新的软件,并开始寻找docker来运行我的代码。我想了解它的功能和工作原理。 据我所知,docker容器就像虚拟环境,在执行时运行一组指令,可以将其中包含的所有内容视为一个实体(因此它或其他内容不会相互制约?)。当我读到更多关于容器的内容时,它们听起来非常完美,可以消除对虚拟环境的任何需求,但仍然不确定。如果能澄清一下,我将不胜感激,因为