class Docker::Rails::Server

Public Class Methods

existing_server(path) click to toggle source
# File lib/docker/rails/server.rb, line 46
def self.existing_server(path)
  server = Rails.find_server(path)
  return server if server && server.up?
  server.remove! if server
  nil
end
load(id, path) click to toggle source
# File lib/docker/rails/server.rb, line 30
def self.load(id, path)
  server = new(id)
  Docker::Rails.add_default_instructions_to(server, path)
end
load_from(container) click to toggle source
# File lib/docker/rails/server.rb, line 26
def self.load_from(container)
  load(container.id, container.path)
end
migrate_database!(path, postgres) click to toggle source
# File lib/docker/rails/server.rb, line 35
def self.migrate_database!(path, postgres)
  ['create', 'migrate'].each do |cmd|
    Docker.run(
      "#{rails_image(path.name)}", 
      "--rm --link db:db -e PG_HOST=#{postgres.ip} " + 
      "-v #{path}:/usr/src/app",
      "rake db:#{cmd}"
    )
  end
end
new(id) click to toggle source
Calls superclass method Docker::Container::new
# File lib/docker/rails/server.rb, line 7
def initialize(id)
  super
end
run(path, postgres, options = "") click to toggle source
Calls superclass method Docker::Container::run
# File lib/docker/rails/server.rb, line 11
def self.run(path, postgres, options = "")
  server = existing_server(path) 
  return server if server
  migrate_database!(path, postgres)
  server = super(
    "#{rails_image(path.name)}", 
    options                                               +
    " -d --name #{rails_server(path.name)} --link db:db " +
    "-e PG_HOST=#{postgres.ip} -v #{path}:/usr/src/app",
    nil,
    path
  )
  self.load(server.id, path)
end