laravel - 如何在 Lumen 应用上使用 docker 容器解决 heroku 部署的 503 错误
问题描述
我正在尝试使用 docker 容器在 heroku 中部署 PHP Lumen webapp。
我正在使用 docker-compose 在本地部署我的应用程序,使用它没有问题。我可以在 localhost 中测试它而没有任何问题。
这是我的 docker-compose 文件:
nginx:
build: images/nginx
command: nginx -g "daemon off;"
links:
- php
ports:
- "80:80"
php:
build: images/php
volumes:
- ./images/php:/var/www/html
working_dir: /var/www/html/app/public
command: php-fpm
links:
- db
- cache
ports:
- "9000:9000"
environment:
APP_ENV: local
APP_DEBUG: 'true'
APP_KEY: SomeRandomKey!!!
APP_LOCALE: en
APP_FALLBACK_LOCALE: en
DB_CONNECTION: mysql
DB_HOST: db
DB_DATABASE: lumen
DB_USERNAME: lumen
DB_PASSWORD: secret
MEMCACHED_HOST: cache
CACHE_DRIVER: memcached
CACHE_DRIVER: array
SESSION_DRIVER: array
QUEUE_DRIVER: array
SESSION_DRIVER: cookie
db:
image: mysql
command: mysqld --default-authentication-plugin=mysql_native_password
restart: always
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: lumen
MYSQL_USER: lumen
MYSQL_PASSWORD: secret
cache:
image: memcached
我尝试按照其文档在heroku上进行部署,这样做:
On root folder:
heroku create
heroku container:push web
heroku container:release web
关于部署的一切似乎都很好,但是当我尝试进入应用程序时,我得到一个错误屏幕,上面写着“应用程序错误”。
查看日志后,我唯一能看到的是这条消息:
2019-04-15T21:54:41.459127+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=***.herokuapp.com request_id=**** fwd="***" dyno= connect= service= status=503 bytes= protocol=https
2019-04-15T21:54:42.185673+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=***.herokuapp.com request_id=**** fwd="***" dyno= connect= service= status=503 bytes= protocol
在做了一些研究之后,我认为这可能与缺少数据库或类似的东西有关,但调试“503”消息没有意义,所以我不知道如何继续解决。
有人知道如何解决这个问题吗?
任何帮助,将不胜感激。非常感谢。
解决方案
推荐阅读
- javascript - 使用 reactjs 进行电子邮件 otp 验证
- javascript - 如何在for循环中使用“点击功能”?
- javascript - Anychart cookie 问题,SameSite 属性
- java - 如何使用 glide 将图像放入 ImageView
- ruby-on-rails - 我应该在哪里创建创建后挂钩
- c# - 何时以及如何使用导体
- angular - Angular 9 服务的抽象类需要@injectable 装饰器吗?
- php - php搜索过滤器显示所有行而不过滤
- django - heroku中的Django网站仅在一个特定页面中缺少模板
- c++ - C++ 使用 insert() 在向量开头插入元素