无法向新Dokku容器推送代码:AppArmor配置文件应用失败
问题
在服务器上安装Dokku并创建应用myNodeApp:
$ dokku apps:create myNodeApp
本地仓库添加Dokku远程后,执行git add .并推送代码时出现构建失败,错误信息如下:
$ git push dokku main Enumerating objects: 1119, done. Counting objects: 100% (1119/1119), done. Delta compression using up to 20 threads Compressing objects: 100% (760/760), done. Writing objects: 100% (1119/1119), 92.80 MiB | 11.25 MiB/s, done. Total 1119 (delta 577), reused 727 (delta 310), pack-reused 0 remote: Resolving deltas: 100% (577/577), done. -----> Set main to DOKKU_DEPLOY_BRANCH. -----> Cleaning up... -----> Building myNodeApp from herokuish remote: time="2023-02-18T21:02:28Z" level=error msg="error waiting for container: " remote: docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: unable to apply apparmor profile: apparmor failed to apply profile: write /proc/self/attr/apparmor/exec: no such file or directory: unknown. remote: ! Failure extracting app code remote: ! Removing invalid image tag dokku/myNodeApp:latest remote: ! App build failed To serversIP:myNodeApp ! [remote rejected] main -> main (pre-receive hook declined) error: failed to push some refs to 'serversIP:myNodeApp' (base)
核心错误:无法应用AppArmor配置文件,导致容器初始化失败
解决方案
1. 检查服务器AppArmor状态
执行命令确认AppArmor是否安装并启用:
apparmor_status
- 若提示命令不存在,说明未安装AppArmor;
- 若输出显示已加载的配置文件列表,说明AppArmor已正常运行。
2. 安装并启用AppArmor(Debian/Ubuntu系统)
如果未安装,执行以下操作:
sudo apt-get update && sudo apt-get install apparmor apparmor-utils sudo systemctl enable --now apparmor sudo systemctl restart docker
3. 禁用Docker的AppArmor强制(针对不支持AppArmor的环境)
如果服务器环境无法启用AppArmor(如部分轻量云、容器化宿主),修改Docker配置:
- 编辑或创建
/etc/docker/daemon.json文件:{ "security-opts": ["apparmor=unconfined"] } - 重启Docker服务:
sudo systemctl restart docker
4. 重新推送代码
完成上述操作后,再次执行推送命令:
git push dokku main
内容的提问来源于stack exchange,提问作者Suisse
相关产品推荐
相关产品推荐

