我为嵌入式设备进行开发,我想在 Docker 容器中模拟该设备,目的是自动化升级测试。该设备包含引导加载程序 (u-boot)、两个根分区和一个数据分区。在升级过程中,任何分区都可能被触及。我有在制造过程中使用的旧 SD 卡映像,这些映像已复制到设备上的闪存中。 该映像是使用 yocto 为 imx6 处理器构建的 Linux 映像。
我试过这个
FROM scratch ADD my_sd_card.img /
当我开始我得到的图像
Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "--attach": executable file not found in $PATH: unknown Error: failed to start containers: 3ff71505c5e9
容器镜像只是文件的集合;它没有分区,因为它不是块设备。理论上,您可以解压
.img
文件并从中构建容器映像。
例如:
将SD卡镜像挂载到本地目录
创建一个如下所示的 Dockerfile:
FROM scratch
COPY . .
CMD ["/bin/sh"]
构建图像:
docker build -t myimage -f /path/to/Dockerfile /path/to/mountpoint
那可能有用;这取决于映像中安装的内容及其运行方式。