我使用工具链中包含的recipetool 创建了一个bbappend 文件。我生成的文件
project-spec/meta-user/recipes-containers/docker/docker-ce_git.bbappend
非常简单,我只想在rootfs中添加一个文件
ino_move_docker_data() {
echo "{" >> ${IMAGE_ROOTFS}/etc/docker/daemon.json
echo ' "data-root": "/data/docker"' >> ${IMAGE_ROOTFS}/etc/docker/daemon.json
echo "}" >> ${IMAGE_ROOTFS}/etc/docker/daemon.json
}
ROOTFS_POSTPROCESS_COMMAND += " ino_move_docker_data;"
当我跑步
bitbake -e docker-ce
时,我可以看到ROOTFS_POSTPROCESS_COMMAND=" set_user_group; set_sudoers; ino_move_docker_data;"
。所以该功能已正确添加。
但是,当我尝试构建完整图像时,它不存在,并且
bitbake -e my_image
中不包含我的功能 ROOTFS_POSTPROCESS_COMMAND
我的图像在
project-spec/meta-user/recipes-core/images/
中,并且 doker 添加了 IMAGE_INSTALL
我对 yocto/bitbake/petalinux 还很陌生,所以如果这是一个明显的问题,我很抱歉
根据@skandigraun 评论,
ROOTFS_POSTPROCESS_COMMAND
未加工,因为它是常规食谱
我最终做了什么:
文件:项目规范/元用户/recipes-containers/docker/docker-ce_git.bbappend
FILESEXTRAPATHS:append := "${THISDIR}/files:"
SRC_URI += "file://daemon.json"
do_install:append() {
install -d ${D}${base_prefix}/etc/docker/
install -m 0755 ${WORKDIR}/daemon.json ${D}${base_prefix}/etc/docker/
}
FILES_${PN}:append = " ${base_prefix}/etc/docker/daemon.json "
文件:项目规范/元用户/recipes-containers/docker/files/daemon.json
{
"data-root": "/data/docker"
}