- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
关于这意味着什么,文档似乎有点稀疏。
我正在尝试设置由多级 capistrano 脚本部署的应用程序。
编辑:我正在尝试将同一个应用程序部署两次到同一个服务器。唯一真正的区别(git 分支除外)是我想将每个副本部署到不同的文件夹。第一个实例是一个登台,我可以在与第二个实例(生产实例)完全相同的环境中测试应用程序。 capistrano 能做到这一点吗?
我运行暂存部署没有任何问题。但是,当我运行任何指定我的生产阶段的任务时(例如 deploy:setup,在这种情况下)我收到以下错误:
`deploy:setup' is only run for servers matching {:except=>{:no_release=>true}}, but no servers matched
require "rvm/capistrano"
require "bundler/capistrano"
require "capistrano/ext/multistage"
#server "direct.measuremyho.me", :web, :app, :db, primary: true
set :stages, %w{staging production} # Set staging and production environment
set :default_stage, "staging" # Use staging environment as the default one to prevent accidentally deploying to production
set :application, "mmh"
set :user, "mmh"
set :deploy_via, :remote_cache
#set :deploy_to, "/var/www/#{application}"
set :use_sudo, false
set :keep_releases, 3
set :scm, "git"
set :repository, "git@localhost:#{application}.git"
set :local_repository, "git@direct.measuremyho.me:#{application}.git"
#set :branch, "master"
default_run_options[:pty] = true
ssh_options[:forward_agent] = true
after "deploy:update_code", "deploy:migrate"
after "deploy", "deploy:cleanup"
namespace :deploy do
%w[start stop].each do |command|
desc "#{command} nginx server"
task command, roles: :app, except: {no_release: true} do
sudo "#{try_sudo} service nginx #{command}"
end
end
desc "restart passenger server"
task :restart, roles: :app, except: { no_release: true } do
run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
end
task :setup_config, roles: :app do
# link the nginx config file in the app
# sudo "ln -nfs #{current_path}/config/nginx.conf "\
# "/opt/nginx/conf/nginx.conf"
# make the shared rails config directory
run "mkdir -p #{shared_path}/config"
# ftp the database.yml file to that directory
put File.read("config/database.yml"), "#{shared_path}/config/database.yml"
# make the shared uploads directory
run "mkdir -p #{shared_path}/uploads"
# tell the user to edit database.yml
puts "==> IMPORTANT!!! Now edit database.yml in "\
"#{shared_path}/config <==="
end
after "deploy:setup", "deploy:setup_config"
task :symlink_config, roles: :app do
run "ln -nfs #{shared_path}/config/database.yml #{release_path}/config/database.yml"
run "rm -rf #{release_path}/public/uploads"
run "ln -nfs #{shared_path}/uploads #{release_path}/public/"
end
after "deploy:finalize_update", "deploy:symlink_config"
end
set :application_directory, "staging"
set :rails_env, "staging"
set :main_server, 'direct.measuremyho.me'
set :branch do
default_tag = `git tag`.split("\n").last
tag = Capistrano::CLI.ui.ask "Tag to deploy (make sure to push the tag first): [#{default_tag}] "
tag = default_tag if tag.empty?
branch = "release/#{tag}"
branch
end
# Do not modify
# Set up the server
server "#{main_server}", :web, :app, :db, :primary => true
set :deploy_to, "/var/www/mmh/#{application_directory}"
set :application_directory, "production"
set :rails_env, "production"
set :main_server, 'direct.measuremyho.me'
set :branch, "master"
# Do not modify
# Set up the server
server "#{main_server}", :web, :app, :db, :primary => true
set :deploy_to, "/var/www/mmh/#{application_directory}"
最佳答案
我已经通过替换以下行解决了这个问题:
server "#{main_server}", :web, :app, :db, :primary => true
server "#{main_server}", :web, :app, :db, :primary => true, :no_release => false
关于ruby-on-rails - Capistrano - 将一个应用程序部署到同一台服务器两次,用于登台和生产,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19920938/
我有一个 iPhone 应用程序,我希望能够对其进行配置,以针对多阶段部署中的不同服务进行配置 目前,我将它们放在三个 .plist 模板(包含 url、API key 等)中,我可以在它们之间进行切
Subversion 标签是发布到开发或登台服务器的好方法吗? 我设想了这一点。 当主干变得稳定时,会使用该版本创建一个标签。开发服务器利用 Subversion 切换到该标签,更新到文件的最新版本,
对于开发和生产来说是不同的(对于生产来说它是子文件夹)。使用 webpack 构建不同基础的好方法是什么? 最佳答案 到目前为止我发现的最好的方法是将此属性放入配置中(HtmlWebpackPlug
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 6年前关闭。 Improve t
我想在 Django 应用程序中配置 Sentry 以报告使用不同环境(如暂存和生产)的错误。这样我就可以为每个环境配置警报。 如何使用不同的 Django 设置为 Raven 配置不同的环境? en
对于本地测试,网址类似于: http://localhost:29234/default.aspx 对于暂存,该应用程序位于虚拟目录中: http://stage/OurApp/default.asp
因此,我想了解要阅读哪些内容才能配置更新系统 - 开发 -> 登台 -> 生产,(可能是开发 -> 登台 -> GIT -> 生产。) 如果详细地说,文件将通过 PHP Storm 上传到 Dev,那
让我们假设我有一个 javascript 文件,我已经分发给了我的很多客户,类似于 GA 的 *ga.js,并且这个文件被加载的次数足够多以至于我必须在上面托管它CDN。 我对这个设置的问题是,它真的
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我已经阅读了很多帖子,这些帖子似乎让我接近了,但并没有完全达到我想要的效果。我有一台服务器。在上面,我有 3 个网站:www.domain.com、staging.domain.com 和 dev.d
我有一个 REST api,我想使用 dotnet core 2.0 进行集成测试(不是单元测试)。 目的是能够在本地运行这些集成测试,指向本地开发环境以及我计划从 Teamcity 参数传递的给定测
我正在尝试在项目上运行npm install,但显示EPERM:不允许操作,mkdir'C:\Program Files\nodejs\node_modules.staging 我没有root管理员访
这个问题在这里问了两年:Managing dev/staging/production on DynamoDB?也在这里:DynamoDB Staging/Production/Development
我是一名优秀的程序员,十分优秀!