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