unifreq / openwrt_packit

Flippy's openwrt packaged source code
1.37k stars 404 forks source link

使用docker容器的方式进行打包,会出现wait for /dev/loop1p1 死循环,但第二次打包能百分百成功 #155

Open codercaizh opened 1 year ago

codercaizh commented 1 year ago

当我使用ubuntu22.04创建一个打包的容器后在里面运行打包脚本时会出现如下问题: image 这个时候退出容器,重新再启动容器和执行打包脚本就能成功打包 这个“第一次打包遇到上面的失败、然后第二次打包就能成功”现象百分百必现,不是偶然。我观察到的区别是当第一次打包失败后,即使我删除掉容器,在宿主机执行fdisk -l 还是会出现下面这个Device,这个Device是打包脚本创建的

截屏2022-12-01 01 43 17

只要存在红框处的Device,第二次打包就能百分百成功,打包成功后这个Device就会消失,然后第三次打包就会失败,一失败就会出现这个Device,然后第四次打包就能成功,以此类推 请问下是什么原因呢?

codercaizh commented 1 year ago

在谷歌搜了一圈,原因大概是docker设计里就不允许动态创建分区,如果需要这么搞,要先起个容器创建,然后在起个容器去使用分区