ruby-on-rails - 自动化在 AWS 上部署 Ember-CLI-Rails 应用程序的任务
问题描述
我正在使用https://github.com/thoughtbot/ember-cli-rails构建一个 rails-ember 应用程序。
我正在使用 Capistrano 在 nginx Web 服务器和 AWS 实例上进行部署。我正在关注这两个来源:
https://www.youtube.com/watch?v=imdrYD4ooIk&t=150s
我按照说明进行操作,一切正常。问题是 vendor.css、vendor.js、frontend.css、frontend.js 未复制到 app/public/assets 文件夹。
但是,我可以通过手动将这些文件复制到所需的资产文件夹来成功运行构建。我通过阅读以下部署日志来做到这一点:
01 - /home/deploy/{app-name}/releases/20180701213801/tmp/ember-cli/apps/frontend/assets/frontend-7b19d05f0c30463b6bc445254c46260a.js: 167.85 KB (19.56 KB gzipped)
01 - /home/deploy/{app-name}/releases/20180701213801/tmp/ember-cli/apps/frontend/assets/frontend-a6e35fc1f15073bdd000b39efd15f59a.css: 148.16 KB (24 KB gzipped)
01 - /home/deploy/{app-name}/releases/20180701213801/tmp/ember-cli/apps/frontend/assets/vendor-711976a824e2656ad208cb4c16c1dfc4.js: 1.16 MB (274.52 KB gzipped)
01 - /home/deploy/{app-name}/releases/20180701213801/tmp/ember-cli/apps/frontend/assets/vendor-d3aa84b783735f00b7be359e81298bf2.css: 38 B (58 B gzipped)
我将这些文件明确复制到 app/public/assets 文件夹中,以便一切正常。
此外,每当我第一次部署应用程序时,我都会遇到 502 错误。为此,我总是使用杀死 puma 进程sudo kill -9 {pid}
,然后使用重新启动 puma 服务器bundle exec puma -e production -d -b Unix:/home/deploy/{app-name}/shared/tmp/sockets/puma.sock
然后,我重新启动 nginx 服务器。
按照这些步骤,我能够成功部署所有内容。
但这是很多工作。我宁愿将一切自动化。我不想显式复制文件,也不想每次都重启 puma 和 nginx 服务器。我如何实现这一目标?
另外,每次部署前我都需要在 package.json 文件中添加 'bower': '*' 。有什么办法可以自动化吗?
最后一件事:我想从本地运行一些 rake 任务。目前,我使用这个命令:bundle exec rake {my_rake_task} RAILS_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1
在服务器机器上。有什么建议么?
PS请详细回答。我相信这个问题会帮助许多其他人。如果你建议编辑,我会做的。但是,请鼓励对这个线程进行建设性的讨论。:)
解决方案
推荐阅读
- r - 使用 R 对字符串中的一些模式进行编号
- python - 无法将 .pb 图形转换为 tflite
- spring - 有没有办法避免使用 Spring Batch 两次处理同一个文件?
- asp.net - Flutter 创建多个布局
- javascript - Javascript - 如何在一个功能中点击播放多种格式的多个文件,例如视频和音频
- c# - 在 wpf 中启动后停止情节提要
- r - 将 .xlsx 文件写入 S3 存储桶时出现问题
- javascript - Jquery如何更改$(this)选择器中某些类的文本
- php - 我在这个准备语句mysql中的错误是什么?
- javascript - 搜索/克隆功能不需要区分大小写并且能够优先考虑克隆的内容