AWS EC2使用Dokku部署Django应用提示No procfile found错误求助
Dokku 「No procfile found in app image」报错解决方案
- 检查Procfile文件名拼写和大小写
确保文件名为首字母大写的Procfile,Dokku对文件名大小写敏感,小写procfile或者其他大小写组合都会无法识别。 - 确认Procfile未被排除在部署包外
如果使用git部署,检查项目根目录的.gitignore文件是否包含Procfile规则,可执行以下命令验证:
如果命令有输出,说明Procfile被git忽略,将对应规则从git check-ignore Procfile.gitignore中删除后重新提交即可。 - 自定义Docker镜像部署场景补充配置
如果你是通过Dockerfile构建自定义镜像部署,需要在Dockerfile中增加Procfile复制逻辑,确保文件被打包到镜像工作目录下:# 确认WORKDIR配置后,增加复制指令 COPY Procfile . - 重新构建应用生效
不要仅执行dokku ps:start命令,修改配置后需要先重新构建应用让配置生效:dokku ps:rebuild <app_name> - 临时替代方案:手动指定进程启动命令
不想依赖Procfile的情况下,可以直接通过Dokku配置项设置各进程启动命令,对应你的配置执行以下指令即可:# 设置web进程启动命令 dokku config:set <app_name> DOKKU_PROCFILE_WEB="daphne -b 0.0.0.0 -p $PORT lifeline.asgi:application" # 设置worker进程启动命令 dokku config:set <app_name> DOKKU_PROCFILE_WORKER="celery -A lifeline worker -l info" # 设置beat进程启动命令 dokku config:set <app_name> DOKKU_PROCFILE_BEAT="celery -A lifeline beat -l info" - 验证方法
可执行以下指令进入应用容器,确认Procfile是否存在于工作目录:dokku run <app_name> ls -la
内容的提问来源于stack exchange,提问作者ASFAW AYALKIBET
相关产品推荐
相关产品推荐

