自动执行在AWS上部署Ember-CLI-Rails应用程序的任务

时间:2018-07-01 22:07:38

标签: ruby-on-rails nginx ember.js capistrano puma

我正在使用https://github.com/thoughtbot/ember-cli-rails构建Rails-ember应用程序。

我正在使用Capistrano在nginx Web服务器和AWS实例上进行部署。 我正在关注以下两个来源:

http://www.dsolc.com/blogs/8-deploying-rails-app-to-ec2-instance-with-capistrano-using-nginx-and-puma

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错误。为此,我总是使用sudo kill -9 {pid}杀死puma进程,然后使用bundle exec puma -e production -d -b Unix:/home/deploy/{app-name}/shared/tmp/sockets/puma.sock

重新启动puma服务器。

然后,我重新启动nginx服务器。

按照这些步骤,我能够成功部署所有内容。

但这是很多工作。我的目标是使一切自动化。我不想显式复制文件,也不想每次都重新启动puma和nginx服务器。我该如何实现?

此外,我每次部署前都需要在package.json文件中添加'bower':'*'。有什么办法可以自动化吗?

最后一件事:我想从本地运行一些rake任务。当前,我在服务器计算机上使用以下命令:bundle exec rake {my_rake_task} RAILS_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1。有什么建议吗?

P.S。请详细回答。我相信这个问题会帮助许多其他人。如果您建议进行修改,我会进行。但是,请鼓励对此线程进行建设性讨论。 :)

0 个答案:

没有答案