rust-based-os-comp2022 icon indicating copy to clipboard operation
rust-based-os-comp2022 copied to clipboard

About Dockerfile

Open Andre-HJR opened this issue 3 years ago • 2 comments

官方给的Dockerfile,其实已经比较完善了。但是,对于Ubuntu,个人觉得_Ubuntu官方的源_还是比较慢(如果不挂代理),如果网络不稳定,就很难完成环境部署,我在项目的根目录下创建了一个docker/registryList,用来存放自定义(就近)的镜像列表,然后在update前加入

ADD docker/registryList /etc/apt/
RUN sed -i.bak "1r /etc/apt/registryList" /etc/apt/sources.list

这样,在make build_docker的时候,就可以在系统update前,加入比较快和稳定的源。

Andre-HJR avatar Jul 06 '22 08:07 Andre-HJR

这里尝试写一点心得: 关于Dockerfile的一些使用

首先, 系统镜像换源, Ubuntu换源,

个人觉得_Ubuntu官方的源_还是比较慢(如果不挂代理),如果网络不稳定,就很难完成环境部署,我在项目的根目录下创建了一个docker/registryList,用来存放自定义(就近)的镜像列表,然后在update前加入

ADD docker/registryList /etc/apt/
RUN sed -i.bak "1r /etc/apt/registryList" /etc/apt/sources.list

镜像下载慢的问题同样存在于cargo,同样类比ubuntu的换源方式,在根目录下创建cargo/config,在dockerfile中通过ADD命令将config配置好的文件,复制到系统中,

ADD cargo/confg /root/.cargo/

如上述,实现后,操作相关重要的镜像文件就比较方便。


除了上述,比较直接影响实验体验的部分,还有一个就是qmenu的安装,虽然这只是在构建镜像的时候,会让人比较焦灼,但是为了“能快一点”,我给出我自己的一个建议:

不在系统构建的时候去下载qmenu的相关包, 而是提前下好相关的软件包,通过ADD命令直接添加到/root/目录下,而且鉴于ADD命令的特殊性,其可以在移动复制的时候,将压缩包完成解压,所以我比较推荐直接将包预先下载好,然后直接复制进容器镜像,虽然这样可能整体增加项目的体积,但是2MB~,明显应该是个可以接受的范围。

Andre-HJR avatar Jul 11 '22 09:07 Andre-HJR

@Andre-HJR 很不错!建议能否写成一个QA,并提交PR,便于大家学习?谢谢!

chyyuu avatar Jul 14 '22 02:07 chyyuu