我熟悉Rails,但这是我第一次上传到制作。我能够将我的应用程序成功上传到AWS并进行部署。但是,每次我这样做,我都必须ssh到我的服务器并运行必要的rake任务来清理我的模型并完全准备我的网站。是否有像 production.rb 这样的文件,您可以在其中编写要在每次生产上传时运行的脚本。例如,运行所有测试和rake测试?是否有一个简单的脚本示例。这是我的rake文件的例子。
注意:我使用AWS Beanstalk,超级易于部署,只想运行一些后期制作就绪脚本。
这是我想运行部署后命令的rake文件。
require "#{Rails.root}/app/helpers/application_helper"
include ApplicationHelper
namespace :db do
desc "Generate a new blog post markdown"
task new_article: :environment do
cp 'lib/assets/articles/template.md', "lib/assets/articles/NEW_ARTICLE#{Time.now.strftime("%s")}.md"
puts 'new article created!'
end
task populate: :environment do
Article.destroy_all
if User.count == 0
User.create!(name: "AJ", email: "aj@psychowarfare.com")
end
puts Dir.pwd
a = File.join("lib", "assets", "articles", "*.md")
Dir.glob(a).reject { |name| /.*(template|NEW_ARTICLE).*/ =~ name }.each do |file|
File.open(file, "r") do |f|
contents = f.read
mkdown = Metadown.render(contents)
md = mkdown.metadata
unrendered_content = contents.sub(/^---(\n|.)*---/, '')
#puts unrendered_content
article = Article.create!(title: md["title"],
content: markdown(unrendered_content),
header_image: md["header_image"],
published: md["published"],
useful_links: md["useful_links"],
people_mentioned: md["people_mentioned"],
written_at_date: md["written_at_date"],
timestamp: md["timestamp"],
embedded_link: md["embedded_link"],
user: User.first)
article.add_tag(md["tags"])
puts article.useful_links
puts article.people_mentioned
puts article.header_image
puts article.tags
end
end
puts "Article Count: #{Article.count}"
end
end
答案 0 :(得分:1)
对于后期部署,您可以尝试以下方式。
在 .ebextensions / 01_build.config中创建文件
commands:
create_post_dir:
command: "mkdir /opt/elasticbeanstalk/hooks/appdeploy/post"
ignoreErrors: true
files:
"/opt/elasticbeanstalk/hooks/appdeploy/post/99_build_app.sh":
mode: "000755"
owner: root
group: root
content: |
#!/usr/bin/env bash
cd /var/app/current/app/
Your-Post-Deploy-Command1
Your-Post-Deploy-Command2
Your-Post-Deploy-Command3
这个配置的作用是:
创建“post”目录(如果它尚不存在)(它不会出现
默认) - 忽略任何错误(例如,如果目录已经
存在)
将具有适当权限的shell脚本部署到正确的目录
有关详情,请参阅以下参考资料:Blog-Article& Stackoverflow-Question