vagrant-docker-exec 0.1.1 → 0.1.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4a47b067ae76cfe4241eab65923a7bf7dec1ff97
4
- data.tar.gz: a7f00da4483def3cff1a59ce5c262403e945cdcc
3
+ metadata.gz: 155ffbcbbfec33a327d2b9b6ca2f4b699008bd26
4
+ data.tar.gz: 68ae686a177b542528685d50572fa52f959491e3
5
5
  SHA512:
6
- metadata.gz: 66782044d634db1376cc4ff5e3a7deef79672ddc5f733341ddd78615e1063de0556af8157c60406529dab4cfb90159a7308bc379e0667452b05f02af8f7e68c5
7
- data.tar.gz: c94b760053791a52746b5247f760870729edb5d8057a8520c0a1e744d65e0a078dc950ba8bd01919c8766464bfadbf2eded4ed418da5f7764549e1220c3c7c2d
6
+ metadata.gz: aa3666d20522139c77a10f67828f35aeb2fbb1456f0ea04124de1bc0bc3aba1107f98aca67c06c0b9f96fabe23b799b5a3998732821e33c92949d8488da6289c
7
+ data.tar.gz: 9ff983923ceab8c2faca130b20f3412911267fe91e950bdda4280fec68c3d215282f879e1e1059515d0226a34aecebb2aa869ede989281c64680d5ac66468fa1
@@ -1,7 +1,11 @@
1
- # 0.1.1 (March 1, 2015)
1
+ ## 0.1.2 (March 5, 2015)
2
+
3
+ * Exec commands terminal output is now diplayed
4
+
5
+ ## 0.1.1 (March 1, 2015)
2
6
 
3
7
  * Fixed a bug that caused exec commands to fail
4
8
 
5
- # 0.1.0 (March 1, 2015)
9
+ ## 0.1.0 (March 1, 2015)
6
10
 
7
11
  * Initial release.
data/README.md CHANGED
@@ -1,43 +1,109 @@
1
1
  # vagrant-docker-exec
2
-
3
- This plugin allows you to run `docker exec` on a running container.
2
+ This plugin allows you to run `docker exec` commands from your host. When running docker in a proxy, this will save you the effort of sshing into the proxy to run `docker exec`. If you have multiple running containers, you can exec a command that runs on each container sequentially. Visit [Docker's command reference](https://docs.docker.com/reference/commandline/cli/#exec) for details on the exec command.
4
3
 
5
4
  ## Known Issues
5
+ Docker exec requires Docker 1.3.0 or higher. On non-Linux system, the docker in boot2docker provided by Vagrant is version 1.2 and does not support the exec command, so a custom docker host is required.
6
6
 
7
- Docker exec requires Docker 1.3.0 or higher. boot2docker provided by Vagrant is version 1.2 and does not support exec, so a proxy VM is required to use
8
- this plugin until boot2docker is updated.
7
+ You can find more information on setting up a custom docker host on the [Vagrant blog](http://www.vagrantup.com/blog/feature-preview-vagrant-1-6-docker-dev-environments.html) but basically, create Vagrantfile.proxy:
9
8
 
10
- This plugin has been tested on Mac OS X.
9
+ ```ruby
10
+ # -*- mode: ruby -*-
11
+ # vi: set ft=ruby :
12
+ Vagrant.configure(2) do |config|
13
+ config.vm.box = "phusion/ubuntu-14.04-amd64"
14
+ config.vm.provision "docker"
15
+ config.vm.network :forwarded_port, host: 80, guest: 80
16
+ config.vm.provider :virtualbox do |vb|
17
+ vb.name = "docker-exec-proxy"
18
+ end
19
+ end
20
+ ```
11
21
 
12
- ## Getting Started
22
+ And then use the vagrant_vagrantfile setting to reference your custom host in your Vagrantfile:
23
+
24
+ ```ruby
25
+ # -*- mode: ruby -*-
26
+ # vi: set ft=ruby :
27
+ Vagrant.configure(2) do |config|
28
+ config.vm.define "nginx" do |v|
29
+ v.vm.provider "docker" do |d|
30
+ d.image = "dockerfile/nginx"
31
+ d.ports = ["80:80"]
32
+ d.name = "nginx"
33
+ d.vagrant_vagrantfile = "./Vagrantfile.proxy"
34
+ end
35
+ end
36
+ end
37
+ ```
13
38
 
39
+ This plugin has been tested on Mac OS X and VirtualBox.
40
+
41
+ ## Getting Started
14
42
  To install the plugin, run the following command:
15
43
  ```bash
16
44
  vagrant plugin install vagrant-docker-exec
17
45
  ```
18
46
 
19
47
  ## Usage
48
+ A common use case for the exec command is to open a new shell in a running conatiner. To make it easy, run the `docker-shell` shortcut:
49
+ ```bash
50
+ vagrant docker-shell [container]
51
+ ```
20
52
 
53
+ If you're running a docker host, then you are running in a multi-host environment and the container name is required, even if only one docker container is running.
54
+
55
+ `docker-shell` is a shortcut for running Bash in an interactive shell:
56
+ ```bash
57
+ vagrant docker-exec -t nginx -- bash
58
+ ```
59
+
60
+ The syntax for `docker-exec` is:
21
61
  ```bash
22
62
  vagrant docker-exec [options] [container] -- [command] [args]
23
63
  ```
24
- --[no-]detach Run in the background
25
64
 
65
+ Options are:
66
+ --[no-]detach Run in the background
26
67
  -t, --[no-]tty Open an interactive shell
27
68
 
28
- To create a new file in a container named `nginx`
69
+ Everything after the double hyphen is sent to docker's exec command.
70
+
71
+ As an example, to create a new file in a container named `nginx`:
29
72
 
30
73
  ```bash
31
74
  vagrant docker-exec nginx -- touch /var/www/html/test.html
32
75
  ```
33
76
 
34
- To open an interactive shell in a conatiner named `nginx`
77
+ If the command produces output, the output will be prefixed with the name of the container.
78
+ ```bash
79
+ vagrant docker-exec nginx -- ifconfig
80
+ ==> nginx: eth0 Link encap:Ethernet HWaddr 02:42:ac:11:00:02
81
+ ==> nginx: inet addr:172.17.0.2 Bcast:0.0.0.0 Mask:255.255.0.0
82
+ ==> nginx: inet6 addr: fe80::42:acff:fe11:2/64 Scope:Link
83
+ ==> nginx: UP BROADCAST RUNNING MTU:1500 Metric:1
84
+ ==> nginx: RX packets:24 errors:0 dropped:0 overruns:0 frame:0
85
+ ==> nginx: TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
86
+ ==> nginx: collisions:0 txqueuelen:0
87
+ ==> nginx: RX bytes:1944 (1.9 KB) TX bytes:648 (648.0 B)
88
+ ==> nginx:
89
+ ==> nginx: lo Link encap:Local Loopback
90
+ ==> nginx: inet addr:127.0.0.1 Mask:255.0.0.0
91
+ ==> nginx: inet6 addr: ::1/128 Scope:Host
92
+ ==> nginx: UP LOOPBACK RUNNING MTU:65536 Metric:1
93
+ ==> nginx: RX packets:0 errors:0 dropped:0 overruns:0 frame:0
94
+ ==> nginx: TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
95
+ ==> nginx: collisions:0 txqueuelen:0
96
+ ==> nginx: RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
97
+ ```
35
98
 
99
+ The name of the container is only required for interactive shells. To run a command on multiple running containers, omit the container name:
36
100
  ```bash
37
- vagrant docker-exec -t nginx -- bash
101
+ vagrant docker-exec -- hostname
102
+ ==> nginx: 231e57e57825
103
+ ==> nginx2: 6ebced94866b
38
104
  ```
39
105
 
40
- To simplify opening a shell, you can use the shortcut `vagrant docker-shell [container]`
106
+ Note that all exec commands run by docker are run as the root user.
41
107
 
42
108
  ## Author
43
109
  William Kolean william.kolean@gmail.com
@@ -76,7 +76,12 @@ module VagrantPlugins
76
76
  #@env.ui.info(exec_cmd.flatten)
77
77
 
78
78
  output = ""
79
- machine.provider.driver.execute(*exec_cmd, exec_options)
79
+ machine.provider.driver.execute(*exec_cmd, exec_options) do |type, data|
80
+ output += data
81
+ end
82
+
83
+ output_options = {}
84
+ machine.ui.output(output.chomp!, **output_options) if !output.empty?
80
85
 
81
86
  end
82
87
 
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module DockerExec
3
- VERSION = "0.1.1"
3
+ VERSION = "0.1.2"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-docker-exec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Kolean
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-02 00:00:00.000000000 Z
11
+ date: 2015-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -79,7 +79,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
79
79
  version: '0'
80
80
  requirements: []
81
81
  rubyforge_project:
82
- rubygems_version: 2.0.14
82
+ rubygems_version: 2.2.2
83
83
  signing_key:
84
84
  specification_version: 4
85
85
  summary: docker-exec runs a new command in a running container.