На моем сервере я установил dokku и создал новое приложение: myNodeApp
$ dokku apps:создать 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)
Это проблема с Docker. Docker v23 случайно добавил жесткую зависимость от AppArmor, а v23.0.1 реализовал неправильное исправление, изменив сообщение об ошибке на то, с которым вы столкнулись.
На данный момент исправление является одним из:
А) Понизить версию Docker до версии ниже 23
Б) Установить пакет apparmor (у меня тоже пришлось перезагрузиться)
В) Проблема с новой ошибкой закрыта и помечена для выхода в версии 23.0.2.
Перешел с V 0.30.0 на V 0.29.0 Dokku - ничего не изменилось.
Вы должны иметь возможность использовать AppArmor с Dokku? Это работает для меня, и я не вижу никаких упоминаний в документах Dokku о том, что это запрещено.
Изменение версии Dokku не повлияет на эту проблему — это проблема с демоном Docker.
Под «установить AppArmor» вы подразумеваете приложение, работающее на Ubuntu? потому что когда-то был еще плагин AppArmor Dokku.. и еще вот так: dokku config:set <app-name> DOKKU_APPARMOR_ENABLED=0 но и это не сработало. Столько времени и нервов потерял :'(
Я думаю, что я сделал sudo apt install apparmor, затем перезагрузился.
Spiffytech, ты, маленький угол... бог послал тебя, я знаю... должно быть, потому что это невероятно, но это сработало... но так как я не верю в углы, бога и все такое, я получил еще одну ошибку. с разрешающей версией узла. Я создам новую ветку. спасибо
Как я могу сделать эти решения для Dokku? Поскольку я не могу установить AppArmor для Dokku... должен ли я просто понизить версию Dokku? (не докер!)