docker构建镜像时总会有部分文件没有被更新,解决办法

在构建镜像的时候总会遇到明明更新了里面的某些库文件,但是打包镜像以后发现镜像里面的库文件还是没有被更新,依然使用的旧文件。

试过了很多办法,比如 在构建镜像的时候使用 --no-cache

bash 复制代码
docker build --no-cache . -t 192.168.11.111:11211/comm:3.2

然而并没有效果,新打包的镜像还是存在部分旧文件,最后无奈把Dokerfile文件换了一种写法,解决问题,当然在此之前试过使用笨办法也能解决;

解决办法:

原本我的 Dockerfile

bash 复制代码
FROM 192.168.10.110:1199/std-base:4.0

ADD bin /home/huu/app/bin
ADD appdata /home/huu/app/appdata
ADD lib/* /home/huu/app/lib/
ADD lib/plugin/* /home/huu/app/lib/plugin/
ENV PROJECTHOME="/home/huu/app"
RUN chmod 755 $PROJECTHOME/bin/start-app.sh
RUN chmod 755 $PROJECTHOME/bin/appinstance
CMD ["/home/huu/app/bin/start-app.sh"]

重新修改后的 Dockerfile

bash 复制代码
FROM 192.168.10.110:1199/std-base:4.0

ADD bin /home/huu/app/bin
ADD appdata /home/huu/app/appdata
ADD lib/ /home/huu/app/lib/
#ADD lib/plugin/* /home/huu/app/lib/plugin/
ENV PROJECTHOME="/home/huu/app"
RUN chmod 755 $PROJECTHOME/bin/start-app.sh
RUN chmod 755 $PROJECTHOME/bin/appinstance
CMD ["/home/huu/app/bin/start-app.sh"]

主要区别就是 lib目录,使用了 lib/ 直接添加了整个目录,包括整个目录的文件和文件夹

而原来的是为了添加 plugin目录,又把文件重新加了一遍。经过这样修改以后,之前总是没有更新的几个库文件这次都更新了;

笨办法:

使用原本的Dockerfile文件构建一次镜像,例如:

bash 复制代码
docker  build .  -t  192.168.10.110:1199/app:2.0

然后运行

bash 复制代码
docker run -it <镜像ID>   /bin/bash

最后将需要更新的文件,复制到这个容器中

bash 复制代码
docker cp libodbc.so 123456789abc:/app/lib

将容器打包成一个新的镜像:

bash 复制代码
docker commit <容器id>  192.168.10.110:1199/app:2.1

然后检查新打包的镜像

bash 复制代码
docker images

笨办法适用于临时使用,最好还是使用Dockerfile构建镜像

相关推荐
Ruiery6 小时前
Linux 6.6内核 CPU 深度解析(七):调度器启动 — 从单核到多核,调度器分阶段点亮
linux·运维·服务器
50万马克的面包6 小时前
CSDN-栈队列数组-知识点整理
linux·运维·服务器
MicrosoftCloud7 小时前
用户权限 04|/etc/sudoers 安全配置:从最小授权到「别把 ALL 随便给人」
运维·安全·ubuntu·sudo·sudoers
梦想不只是梦与想7 小时前
docker-compose.yml
docker·docker-compose·docker run
꯭自꯭闭꯭8 小时前
达梦事物特性及MVCC
linux·运维·数据库
亚川楼宇自控系统数据中心厂家9 小时前
实验室智能化管理系统|人环物智一体化管控平台
运维
zmsup11 小时前
Agent 上下文调优:结合 OpsArk 运维智能体,设计模型每一步真正需要的信息
运维·agent·上下文压缩·运维智能体·上下文调优
吴声子夜歌13 小时前
Nginx应用与运维——Nginx负载均衡应用实战(二)
运维·nginx·负载均衡
lisanmengmeng13 小时前
NRPE 添加命令(一)
linux·运维·服务器
pt104313 小时前
CML网络仿真入门-2:使用CML模拟网络实验环境
运维·网络协议