aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNat Lasseter <Nat Lasseter nathan@bytemark.co.uk>2019-01-09 20:28:56 +0000
committerNat Lasseter <Nat Lasseter nathan@bytemark.co.uk>2019-01-09 20:28:56 +0000
commiteb1fd5b48fc4a86dd7c5080695ac10ad4842a3ed (patch)
tree3f1a6dbd2e057481b0898913ab1f31acf59a0baa
parentb4119d5372366ce817f063c279fa5a7b64f47fca (diff)
Change test to example. Change drumsticks to bundler. Remove needless bits of "futureproofing" from drum
-rw-r--r--Readme.textile22
-rwxr-xr-xdrum46
-rw-r--r--example/.drumkit (renamed from test/.drumkit)1
-rw-r--r--example/Gemfile2
-rwxr-xr-xexample/example.rb (renamed from test/test.rb)1
5 files changed, 26 insertions, 46 deletions
diff --git a/Readme.textile b/Readme.textile
index b2aa905..da469eb 100644
--- a/Readme.textile
+++ b/Readme.textile
@@ -1,12 +1,11 @@
h1. DRuM: The Docker Ruby Manager
-p. This is a TERRIBLE alternative to RVM, that uses docker, because why not.
+p. This is a TERRIBLE alternative to RVM, that uses docker, because why not. You need to be root or have sudo or be in the docker group, because docker.
-h2. Use
+h2. Example
bc.. cd test
drum bass
-drum stick sinatra
drum kick
drum snare
drum roll -- -p4567:4567
@@ -15,17 +14,16 @@ h2. Bass Drums
p. Just a ruby image of some form. By default, ruby:alpine.
-bc.. drum bass
-drum bass slim
-drum bass jruby:
-drum bass ruby:2.6
+bc.. drum bass # ruby:alpine
+drum bass slim # Just a tag, ruby:slim
+drum bass jruby: # Just an image, jruby:latest
+drum bass ruby:2.6 # Image and tag, ruby:2.6
-h2. Kick Drums, and Drum Sticks
+h2. Kick Drums
-p. Drum Sticks are DRuM's built in gem manager. (I should really just use bundler.) A Kick Drum is a Bass Drum with the Drum Sticks installed.
+p. A Kick Drum is a Bass Drum with your gems installed.
-bc.. drum stick sinatra
-drum kick
+bc. drum kick
h2. Snare Drums
@@ -38,4 +36,4 @@ h2. Drum Rolls
p. This runs the container.
bc.. drum roll
-drum roll -- -p 4567:4567
+drum roll -- -p123:456
diff --git a/drum b/drum
index 662387b..b939374 100755
--- a/drum
+++ b/drum
@@ -6,7 +6,6 @@ require 'tempfile'
OPTIONS = OpenStruct.new({
noop: false,
- verbose: false,
drumkit: ".drumkit"
})
@@ -25,7 +24,6 @@ class Drumkit
@bassdrum = nil
@kickdrum = nil
@snaredrum = nil
- @drumsticks = []
lines.each do |line|
case line
@@ -35,8 +33,6 @@ class Drumkit
@kickdrum = line[9..-1]
when /^SNAREDRUM/
@snaredrum = line[10..-1]
- when /^DRUMSTICK/
- @drumsticks << line[10..-1]
end
end
end
@@ -51,8 +47,7 @@ class Drumkit
"This file will be modified automatically. Only make changes if you know what you are doing. Otherwise, use drum.\n\n" +
(@bassdrum ? "BASSDRUM #{@bassdrum}\n" : "") +
(@kickdrum ? "KICKDRUM #{@kickdrum}\n" : "") +
- (@snaredrum ? "SNAREDRUM #{@snaredrum}\n" : "") +
- @drumsticks.map{|s| "DRUMSTICK #{s}"}.join("\n")
+ (@snaredrum ? "SNAREDRUM #{@snaredrum}\n" : "")
end
end
@@ -79,10 +74,6 @@ parser = OptionParser.new do |opt|
opt.on("-n", "--noop", "--dry-run", "Dry run, don't actually *do* anything") do
OPTIONS.noop = true
- OPTIONS.verbose = true
- end
- opt.on("-v", "--verbose", "Explain what's happening") do
- OPTIONS.verbose = true
end
opt.on("-d", "--drumkit", :REQUIRED, "Specify drumkit file (default: .drumkit)") do |dk|
OPTIONS.drumkit = dk
@@ -128,40 +119,34 @@ case COMMAND
bassdrum = DRUMKIT.bassdrum
end
end
- info "Fetching Bass Drum: #{bassdrum}" if OPTIONS.verbose
+ info "Fetching Bass Drum: #{bassdrum}" if OPTIONS.noop
system "docker pull #{bassdrum}" unless OPTIONS.noop
DRUMKIT.bassdrum = bassdrum unless OPTIONS.noop
when "kick"
error("No Bass Drum specified.", 1) if DRUMKIT.bassdrum.nil?
- if !ARGV[0].nil?
- kickdrum = ARGV[0].strip
+ if DRUMKIT.kickdrum.nil?
+ kickdrum = "drum-bass-#{DRUMKIT.bassdrum.gsub(/:/,"_")}-kick-#{File.basename(Dir.pwd)}"
else
- if DRUMKIT.kickdrum.nil?
- kickdrum = "drum-bass-#{DRUMKIT.bassdrum.gsub(/:/,"_")}-kick-#{File.basename(Dir.pwd)}"
- else
- kickdrum = DRUMKIT.kickdrum
- end
+ kickdrum = DRUMKIT.kickdrum
end
- puts "Building Kick Drum: #{kickdrum}" if OPTIONS.verbose
+ puts "Building Kick Drum: #{kickdrum}" if OPTIONS.noop
Tempfile.open("drum-tmp-dockerfile", Dir.pwd) do |f|
f.puts "FROM #{DRUMKIT.bassdrum}"
- f.puts "RUN gem install --no-document #{DRUMKIT.drumsticks.join(" ")}"
+ f.puts "COPY Gemfile* ./"
+ f.puts "RUN bundle install"
f.flush
system "docker build -t #{kickdrum} -f #{File.basename(f)} ."
+ system "docker run #{kickdrum} cat Gemfile.lock > Gemfile.lock"
end unless OPTIONS.noop
DRUMKIT.kickdrum = kickdrum unless OPTIONS.noop
when "snare"
error("No Kick Drum specified.", 1) if DRUMKIT.kickdrum.nil?
- if !ARGV[0].nil?
- snaredrum = ARGV[0].strip
+ if DRUMKIT.snaredrum.nil?
+ snaredrum = "#{DRUMKIT.kickdrum}-snare-#{entrypoint.gsub(/[\/.]/, "_")}"
else
- if DRUMKIT.snaredrum.nil?
- snaredrum = "#{DRUMKIT.kickdrum}-snare-#{entrypoint.gsub(/[\/.]/, "_")}"
- else
- snaredrum = DRUMKIT.snaredrum
- end
+ snaredrum = DRUMKIT.snaredrum
end
- puts "Creating Snare Drum: #{snaredrum}" if OPTIONS.verbose
+ puts "Creating Snare Drum: #{snaredrum}" if OPTIONS.noop
Tempfile.open("drum-tmp-dockerfile", Dir.pwd) do |f|
f.puts "FROM #{DRUMKIT.kickdrum}"
f.puts "COPY . ."
@@ -170,11 +155,6 @@ case COMMAND
system "docker build -t #{snaredrum} -f #{File.basename(f)} ."
end unless OPTIONS.noop
DRUMKIT.snaredrum = snaredrum unless OPTIONS.noop
- when "stick"
- error("Specify drumstick", 1) if ARGV[0].nil?
- drumstick = ARGV[0].strip
- info "Adding Drumstick: #{drumstick}" if OPTIONS.verbose
- DRUMKIT.add_stick(drumstick) unless OPTIONS.noop
when "roll"
error("No Snare Drum specified.", 1) if DRUMKIT.snaredrum.nil?
system "docker run #{ARGV.join(" ")} #{DRUMKIT.snaredrum}"
diff --git a/test/.drumkit b/example/.drumkit
index 6b6b833..e8b4f81 100644
--- a/test/.drumkit
+++ b/example/.drumkit
@@ -3,4 +3,3 @@ This file will be modified automatically. Only make changes if you know what you
BASSDRUM ruby:alpine
KICKDRUM drum-bass-ruby_alpine-kick-test
SNAREDRUM drum-bass-ruby_alpine-kick-test-snare-test_rb
-DRUMSTICK sinatra
diff --git a/example/Gemfile b/example/Gemfile
new file mode 100644
index 0000000..862b4cc
--- /dev/null
+++ b/example/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem "sinatra"
diff --git a/test/test.rb b/example/example.rb
index 3df8653..5aed8cb 100755
--- a/test/test.rb
+++ b/example/example.rb
@@ -3,6 +3,7 @@
require 'sinatra'
set :bind, '0.0.0.0'
+set :port, 80
get '/' do
'Put this in your pipe & smoke it!'