2016-05-10 11 views

答えて

1

ドキュメント:

require 'docker' 

# Create a Container. 
container = Docker::Container.create('Cmd' => ['ls'], 'Image' => 'base') 

# Attach to the Container. Currently, the below options are the only valid ones. 
# By default, :stream, :stdout, and :stderr are set. 
container.attach(:stream => true, :stdin => nil, :stdout => true, :stderr => true, :logs => true, :tty => false) 
# => [["bin\nboot\ndev\netc\nhome\nlib\nlib64\nmedia\nmnt\nopt\nproc\nroot\nrun\nsbin\nselinux\nsrv\nsys\ntmp\nusr\nvar", []] 

# If you wish to stream the attach method, a block may be supplied. 
container = Docker::Container.create('Image' => 'base', 'Cmd' => ['find/-name *']) 
container.tap(&:start).attach { |stream, chunk| puts "#{stream}: #{chunk}" } 
stderr: 2013/10/30 17:16:24 Unable to locate find/-name * 
# => [[], ["2013/10/30 17:16:24 Unable to locate find/-name *\n"]] 

# If you want to attach to stdin of the container, supply an IO-like object: 
container = Docker::Container.create('Image' => 'base', 'Cmd' => ['cat'], 'OpenStdin' => true, 'StdinOnce' => true) 
container.tap(&:start).attach(stdin: StringIO.new("foo\nbar\n")) 
# => [["foo\nbar\n"], []] 

は、このヘルプをしていますか?なぜdocker-apiを使用しようとしているのですか? docker volumes (-v)は使えませんか?

+1

I:あなたはVolumes' => {'/foo' => '/local_foo'} に、ローカルフォルダにアップデートをマウントする必要がある場合は、からテストケースを参照することができ/foo

container = Docker::Container.create('Cmd' => %w[test -d /foo], 'Image' => 'debian:wheezy', 'Volumes' => {'/foo' => {}} ) 

コンテナのフォルダで以下のコマンドを実行するために問題ないはずです理解していない。あなたが提供した例では、ローカルボリュームはどこに接続されていますか?これらの例では、stdoutとstdinがリダイレクトされているだけです。 – nino

2

現在のREADMEは、ボリュームをコンテナでどのように使用するかについて説明する部分がありませんでした。本当に

container_spec.rb

+1

これは機能しません。私はエラー "json:ローカルフォルダでこれを試してみると、型のGo値にオブジェクトを非整列化できない"というエラーが表示されます。また、ドッカーの検査で確認したところ、オプション-vを使用すると、エントリ「マウント」の下にエントリが追加され、「ボリューム」の下にある情報が – nino

+0

であれば、このhttps:// github.com/swipely/dockly/blob/master/lib/dockly/build_cache/docker.rb#L61? – BMW

+0

とこれ:https://github.com/swipely/docker-api/issues/344 – BMW

関連する問題