capdocker 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 7cad73324659bf6662f73edd6dd2d96de7a78937
4
+ data.tar.gz: 10f8596d8b5e5a66719806fd5b11a1f30e701b54
5
+ SHA512:
6
+ metadata.gz: c753d609ed0c8840f917c47550005ebbdd2979125321c560c9dda5d26f41e66ce620bc0dafffd6845dc27bebed27dc173eb30716071e9fdad82254ee32e65a24
7
+ data.tar.gz: f6fff6dd345903b1ca0d93b071cd9e578f7a0e1e6be3be6549e8b7fcdf3abc125ec8a742fcd075791396de5cab2de929e55dda8b6c24e97854b2f8b5af42f9b1
data/capdocker.gemspec ADDED
@@ -0,0 +1,25 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{capdocker}
5
+ s.version = "1.0.1"
6
+ s.authors = ["Ross Riley", "One Black Bear"]
7
+ s.email = %q{ross@oneblackbear.com}
8
+ s.date = Time.now
9
+ s.require_paths = ["lib"]
10
+ s.description = %q{An extension to Capistrano to handle deploys for One Black Bear docker containers.}
11
+ s.files = [
12
+ "capdocker.gemspec",
13
+ "lib/capdocker.rb",
14
+ "lib/docker.rb",
15
+ "lib/docker_deploy.rb",
16
+ "lib/templates/nginx_host.erb",
17
+ "lib/templates/nginx_container.erb"
18
+ ]
19
+ s.homepage = %q{http://oneblackbear.com}
20
+ s.summary = %q{Deploy skeleton apps to docker container.}
21
+ s.add_dependency 'capistrano', "~> 2.13.5"
22
+ s.add_dependency 'colored', ">= 1.2.0"
23
+ s.add_dependency 'inifile', ">= 2.0.2"
24
+ end
25
+
data/lib/capdocker.rb ADDED
@@ -0,0 +1,4 @@
1
+ require 'colored'
2
+ require 'fileutils'
3
+ require "docker_deploy"
4
+ require "docker"
data/lib/docker.rb ADDED
@@ -0,0 +1,13 @@
1
+ Capistrano::Configuration.instance(:must_exist).load do
2
+
3
+ namespace :docker do
4
+
5
+ desc "build an updated box, restart container"
6
+ task :build do
7
+ run "docker build -t oneblackbear/#{application} #{release_path}/"
8
+ run "docker ps | grep #{app_port} | awk '{print $1}' | xargs -n 1 docker kill"
9
+ run "docker run -p #{app_port}:80 -v /home/docker/data/#{application}/mysql:/data/mysql:rw -d -t oneblackbear/#{application}:latest"
10
+ end
11
+ end
12
+
13
+ end
@@ -0,0 +1,57 @@
1
+ Capistrano::Configuration.instance(:must_exist).load do
2
+
3
+ role :web, "obb1.oneblackbear.com"
4
+ set :user, "docker"
5
+ set :application, "docker-example-"+rand(2000)
6
+ set :user, "docker"
7
+ set :release_path, "./#{application}"
8
+ set :app_domain, "docker.oneblackbear.com"
9
+ set :app_port, rand(2000)+8100
10
+
11
+ namespace :deploy do
12
+ task :prepare do
13
+ run "cd #{release_path} && rm -Rf ./*"
14
+ run "mkdir -p #{release_path}/platform"
15
+ run "mkdir -m0777 -p data/#{application}/mysql"
16
+ end
17
+ task :start do ; end
18
+ task :stop do ; end
19
+ task :create_symlink do
20
+ run "ln -f -s #{basedir}/#{release_path}/platform/nginx_host.conf ./conf/nginx/#{application}.conf"
21
+ end
22
+
23
+ task :configure_platform do
24
+ host_content = from_template("platform/nginx_host.erb")
25
+ put host_content, "#{release_path}/platform/nginx_host.conf"
26
+ container_content = from_template("platform/nginx_container.erb")
27
+ put container_content, "#{release_path}/platform/nginx_container.conf"
28
+ end
29
+
30
+ task :update_code do
31
+ prepare
32
+ configure_platform
33
+ puts "Pushing code for current git commit ..."
34
+ set :basedir, capture("pwd").gsub(/\n|\r/, "")
35
+ set :tag, %x[git rev-parse --short HEAD].strip() + ".tar.gz"
36
+ run_locally "git archive HEAD | gzip > #{tag}"
37
+ top.upload "#{tag}", "#{release_path}", :via => :scp, :mkdir => true
38
+ run_locally "rm #{tag}"
39
+ run "cd #{release_path} && tar -xzvf #{tag}"
40
+ run "rm #{release_path}/#{tag}"
41
+ end
42
+ task :symlink do;end
43
+ task :restart do
44
+ run "sudo service nginx restart"
45
+ end
46
+ end
47
+
48
+
49
+
50
+
51
+ def from_template(file)
52
+ require 'erb'
53
+ template = File.read(File.join(File.dirname(__FILE__), "..", file))
54
+ result = ERB.new(template).result(binding)
55
+ end
56
+
57
+ end
@@ -0,0 +1,21 @@
1
+ server {
2
+ listen 80 default_server;
3
+ listen [::]:80 default_server ipv6only=on;
4
+
5
+ root /var/www/public;
6
+ index index.php index.html index.htm;
7
+
8
+
9
+ location / {
10
+ try_files $uri $uri/ /index.php;
11
+ }
12
+
13
+ location ~ \.php$ {
14
+ fastcgi_pass unix:/var/run/php5-fpm.sock;
15
+ fastcgi_param PATH_INFO $fastcgi_script_name;
16
+ include /etc/nginx/fastcgi_params;
17
+ fastcgi_index index.php;
18
+ fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
19
+ }
20
+ }
21
+
@@ -0,0 +1,7 @@
1
+ server {
2
+ server_name <%=app_domain%>;
3
+ location / {
4
+ proxy_pass http://127.0.0.1:<%=app_port%>/;
5
+ proxy_set_header Host $http_host;
6
+ }
7
+ }
metadata ADDED
@@ -0,0 +1,92 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: capdocker
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Ross Riley
8
+ - One Black Bear
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-11-09 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: capistrano
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ~>
19
+ - !ruby/object:Gem::Version
20
+ version: 2.13.5
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ~>
26
+ - !ruby/object:Gem::Version
27
+ version: 2.13.5
28
+ - !ruby/object:Gem::Dependency
29
+ name: colored
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - '>='
33
+ - !ruby/object:Gem::Version
34
+ version: 1.2.0
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - '>='
40
+ - !ruby/object:Gem::Version
41
+ version: 1.2.0
42
+ - !ruby/object:Gem::Dependency
43
+ name: inifile
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - '>='
47
+ - !ruby/object:Gem::Version
48
+ version: 2.0.2
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - '>='
54
+ - !ruby/object:Gem::Version
55
+ version: 2.0.2
56
+ description: An extension to Capistrano to handle deploys for One Black Bear docker
57
+ containers.
58
+ email: ross@oneblackbear.com
59
+ executables: []
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - capdocker.gemspec
64
+ - lib/capdocker.rb
65
+ - lib/docker.rb
66
+ - lib/docker_deploy.rb
67
+ - lib/templates/nginx_host.erb
68
+ - lib/templates/nginx_container.erb
69
+ homepage: http://oneblackbear.com
70
+ licenses: []
71
+ metadata: {}
72
+ post_install_message:
73
+ rdoc_options: []
74
+ require_paths:
75
+ - lib
76
+ required_ruby_version: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - '>='
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ required_rubygems_version: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ requirements: []
87
+ rubyforge_project:
88
+ rubygems_version: 2.1.10
89
+ signing_key:
90
+ specification_version: 4
91
+ summary: Deploy skeleton apps to docker container.
92
+ test_files: []