Method: Docker::Maker#put
- Defined in:
- lib/docker/maker.rb
#put(vals) ⇒ Object
IMG=$(docker run -i -a stdin brianm/ruby /bin/bash -c “/bin/cat > /echo.rb” < ./echo.rb)
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
# File 'lib/docker/maker.rb', line 102 def put vals vals.each do |k, v| if File.directory? k # mkdir foo; bsdtar -cf - -C adir . | (bsdtar xpf - -C foo ) open("|tar -cf - -C #{k} .") do |input| bash "mkdir -p #{v}" cmd = [docker, "run", "-i","-a", "stdin", @name, "/bin/bash", "-c", "tar xpf - -C #{v}"] @img, s = _exec cmd, input raise @img unless s _wait _commit end else File.open(k, "r") do |input| cmd = [docker, "run", "-i","-a", "stdin", @name, "/bin/bash", "-c", "/bin/cat > #{v}"] @img, s = _exec cmd, input raise @img unless s _wait _commit end end end end |