首页 > 其他分享 >Docker打包rust时版本依赖问题

Docker打包rust时版本依赖问题

时间:2024-07-05 15:09:07浏览次数:23  
标签:RUN rustup 293.5 rust Docker 1.79 打包 backend

rust程序在服务器上能打包成功,但在Dockerfile运行时始终报依赖错误,涉及版本太多即使手动改.lock文件效果也不理想,切换镜像无效果

> [4/4] RUN cargo install --path .:                                            
0.426   Installing backend v0.1.0 (/backend)                                    
0.820     Updating `ustc` index                                                 
293.5 error: failed to compile `backend v0.1.0 (/backend)`, intermediate artifacts can be found at `/backend/target`                                            
293.5 
293.5 Caused by:
293.5   failed to select a version for the requirement `ahash = "^0.8"`
293.5   candidate versions found which didn't match: 0.4.8, 0.4.1, 0.4.0, ...
293.5   location searched: `ustc` index (which is replacing registry `crates-io`)
293.5   required by package `actix-web v4.5.1`
293.5       ... which satisfies dependency `actix-web = "^4.5.1"` of package `backend v0.1.0 (/backend)`
293.5   perhaps a crate was updated and forgotten to be re-vendored?
------

最后查明问题原因是阿里云docker镜像中的rust最新版本太低,命令行输入:

docker pull rust:latest
docker image inspect rust:latest|grep -I version

得到版本只有1.57.0,更服务器上使用1.79.0相差太远

        "DockerVersion": "20.10.7",
                "RUST_VERSION=1.57.0"

解决方案:在Dockerfile中升级rust到指定版本: RUN rustup toolchain install 1.79.0 && rustup default 1.79.0

FROM rust:latest
  
WORKDIR /backend

RUN rustup toolchain install 1.79.0 && rustup default 1.79.0

COPY . .

RUN cargo install --path .

CMD ["backend"]

标签:RUN,rustup,293.5,rust,Docker,1.79,打包,backend
From: https://www.cnblogs.com/lovelifelovekitty/p/18285882

相关文章

  • 在Docker中搭建rabbit MQ集群 (Mac + OrbStack)
    我以为用docker搭建一个rabbitMq集群会非常简单,但是结果却出乎意料,我花了差不多两个半天才搞定。这还是依赖了AI的协助,否则难度不敢想象。我的环境是Mac上的OrbStack。用了Kimi+文心一言+ChatGPT+Claude,还是Kimi价值最大。backandforth的过程就不讲了,这里直接说一下......
  • golang go-bindata打包配置文件嵌入到二进制文件
    go-bindata打包配置文件嵌入到二进制文件项目中难免会用到一些静态资源和配置文件,但是常规打包的二进制文件无法再其他目录正常运行(静态资源和配置文件不存在)有类似需求的可以安装使用:go-bindata进行编译处理配置文件go-bindata(go-bindata)包实现将项目静态配置文件嵌......
  • Linux(Centos7)安装Docker 社区(ce)版
    安装准备查看Linux系统版本是否为centos7cat/etc/os-release确保系统内核为3版本以上uname-a安装Docker如之前安装过请卸载yumremovedocker\docker-client\docker-client-latest\docker-common\......
  • 谷粒商城学习-11-docker安装redis
    文章目录一,拉取Redis镜像1,搜索Redis的Docker镜像2,拉取Redis镜像3,查看已经拉取的镜像二,创建、启动Redis容器1,创建redis配置文件2,创建及运行Redis容器3,使用dockerps查看运行状态的容器4,验证容器是否可用三,修改Redis配置文件一,拉取Redis镜像1,搜索Redis的Docker镜像......
  • rust学习 day1
    边读rust程序设计这本书边写代码。今天主要和cargo(换源,包提速),以及actix-web这个库(版本不兼容)鏖战。清华的源也太慢了,换了中科大的才搞定。书里的actix-web版本太落后了,编译通过不了,换了actix-web4.0然后参考官方指南:https://actix.rs/docs/getting-started/,才编译成功。usea......
  • rust学习 day2
    搞了搞基本的并发。照着书上写了个曼德博绘图器。写起来真麻烦,里三层外三层。useactix_web::{web,App,HttpResponse,HttpServer};useserde::Deserialize;#[actix_web::main]asyncfnmain(){println!("Servingonhttp://127.0.0.1:3000");HttpServer::n......
  • Docker 构建nginx镜像
     步骤:(1)创建一个目录,把构建Nginx的Dockerfile文件保存到此目录。创建一个名为nginxDockerfile的目录。mkdirnginxDockerfile(2)进入刚才创建好的目录。cdnginxDockerfile(3)创建Dockerfile文件。vimdockerfile 文件内容如下FROMcentosMAINTAINERxpxRUNyum......
  • 搭建高效攻防靶场vulfocus与Docker仓库管理实战:从听说到入门系列
    搭建高效攻防靶场vulfocus与Docker仓库管理实战:从听说到入门系列vulfocus简介vulfocus,作为一款前沿的漏洞集成平台,它巧妙地将多种最新的CVE漏洞环境封装于Docker容器之中,便于部署与操作,成为提升安全实战技能的理想靶场。用户既可选择在本地VMware环境中亲手搭建,享受从零到一的......
  • UI 自动化分布式测试 - Docker Selenium Grid
    Docker和 SeleniumGrid 的结合为分布式UI自动化测试提供了一种高效、可扩展且易于管理的方法。通过使用Docker容器化技术,测试环境的设置和配置变得更加简便和一致;而SeleniumGrid则允许在多个节点上并行运行分布式测试,从而大大提升测试的速度和覆盖范围。 分布......
  • Windows下Docker-desktop
    1、在Windows下安装Docker-desktop下载:https://github.com/tech-shrimp/docker_installer/releases/download/latest/docker_desktop_installer_windows_x86_64.exe2、安装:start/w"""docker_desktop_installer_windows_x86_64.exe"install--installat......