dip 4.1.0 → 4.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +28 -9
- data/lib/dip/cli/nginx.rb +5 -3
- data/lib/dip/commands/nginx.rb +4 -2
- data/lib/dip/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: de28bb80ddff1548082c5b8ccd0115bcd650cbdba9a930c666b02751cf0ba976
|
4
|
+
data.tar.gz: 96a4a6d5b2f78b559ef429f793e1899ec8d35edc7f10ac90693632b8a9e2be06
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 404af36fd19249124ab8bf8ce3f765c03f8e72ef9d6c1138424704233caf543c7ce2cf8ea7a86ece144407597bfba895cdb140ef277aa71042201a77221c974c
|
7
|
+
data.tar.gz: 4b788801e5c6e73e259f0de5b4c137aa5dcce5a7e681dae1d21b2c403118cdafdf0870c22bd80be350c25f943e100930c0f8296927898196e0c812e0f1f66254
|
data/README.md
CHANGED
@@ -8,10 +8,15 @@ Docker Interaction Process
|
|
8
8
|
|
9
9
|
A command-line utility that gives the "native" interaction with applications configured with Docker Compose. It is for local development only. In practice, it creates the feeling that you work without containers.
|
10
10
|
|
11
|
+
<p float="left">
|
12
|
+
<a href="https://evilmartians.com/?utm_source=dip"><img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg" alt="Sponsored by Evil Martians" height="80" /></a>
|
13
|
+
<img src="https://ya-webdesign.com/images250_/vertical-divider-png-1.png" width="50" height="100" />
|
14
|
+
<a href="https://www.jetbrains.com/?from=DIP"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/JetBrains_Logo_2016.svg/1200px-JetBrains_Logo_2016.svg.png" alt="Sponsored by JetBrains" height="100" /></a></p>
|
15
|
+
|
11
16
|
## Presentations and examples
|
12
17
|
|
13
18
|
- [Local development with Docker containers](https://slides.com/bibendi/dip)
|
14
|
-
-
|
19
|
+
- Dockerized Ruby on Rails applications: [one](https://github.com/bibendi/dip-example-rails), [two](https://github.com/evilmartians/evil_chat)
|
15
20
|
- [Dockerized Node.js application](https://github.com/bibendi/yt-graphql-react-event-booking-api)
|
16
21
|
- [Dockerized Ruby gem](https://github.com/bibendi/schked)
|
17
22
|
|
@@ -39,11 +44,11 @@ When we change the current directory, all shell aliases will be automatically re
|
|
39
44
|
|
40
45
|
Also, in shell mode Dip is trying to determine manually passed environment variables. For example:
|
41
46
|
|
42
|
-
```
|
47
|
+
```shhttps://ya-webdesign.com/images250_/vertical-divider-png-1.pnghttps://ya-webdesign.com/images250_/vertical-divider-png-1.png
|
43
48
|
VERSION=20180515103400 rails db:migrate:down
|
44
49
|
```
|
45
50
|
|
46
|
-
You could add this `eval` at the end of your `~/.zshrc`, or `~/.bashrc`, or `~/.bash_profile`.
|
51
|
+
You could add this `eval` at the end of your `~/.zshrc`, or `~/.bashrc`, or `~/.bash_profile`.
|
47
52
|
After that, it will be automatically applied when you open your preferred terminal.
|
48
53
|
|
49
54
|
## Installation
|
@@ -70,14 +75,14 @@ gem install dip
|
|
70
75
|
|
71
76
|
### Precompiled binary
|
72
77
|
|
73
|
-
If you don't have installed Ruby, then you could copy a precompiled binary to your system.
|
78
|
+
If you don't have installed Ruby, then you could copy a precompiled binary to your system.
|
74
79
|
It can be found at [releases page](https://github.com/bibendi/dip/releases)
|
75
80
|
or type bellow into your terminal:
|
76
81
|
|
77
82
|
```sh
|
78
|
-
curl -L https://github.com/bibendi/dip/releases/download/4.
|
83
|
+
curl -L https://github.com/bibendi/dip/releases/download/4.2.0/dip-`uname -s`-`uname -m` > /usr/local/bin/dip
|
79
84
|
chmod +x /usr/local/bin/dip
|
80
|
-
```
|
85
|
+
```
|
81
86
|
|
82
87
|
## Docker installation
|
83
88
|
|
@@ -97,13 +102,13 @@ The configuration file `dip.yml` should be placed in a project root directory.
|
|
97
102
|
Also, in some cases, you may want to change the default config path by providing an environment variable `DIP_FILE`.
|
98
103
|
If nearby places `dip.override.yml` file it would be merged into the main config.
|
99
104
|
|
100
|
-
Below is an example of a real config.
|
101
|
-
`dip.yml` reference will be written soon.
|
105
|
+
Below is an example of a real config.
|
106
|
+
`dip.yml` reference will be written soon.
|
102
107
|
Also, you can check out examples in the top.
|
103
108
|
|
104
109
|
```yml
|
105
110
|
# Required minimum dip version
|
106
|
-
version: '4'
|
111
|
+
version: '4.1'
|
107
112
|
|
108
113
|
environment:
|
109
114
|
COMPOSE_EXT: development
|
@@ -293,6 +298,20 @@ curl www.bar-app.docker/api/v1/quz
|
|
293
298
|
curl www.bar-app.docker/api/v1/baz_service/qzz
|
294
299
|
```
|
295
300
|
|
301
|
+
#### Pass SSL certificates
|
302
|
+
|
303
|
+
```sh
|
304
|
+
dip nginx up -c $HOME/ssl_certificates
|
305
|
+
```
|
306
|
+
|
307
|
+
#### Publish more than one port to localhost
|
308
|
+
|
309
|
+
Just pass a list, separated by a space:
|
310
|
+
|
311
|
+
```sh
|
312
|
+
dip nginx up -p 80:80 443:443
|
313
|
+
```
|
314
|
+
|
296
315
|
### dip dns
|
297
316
|
|
298
317
|
Runs a DNS server container based on https://github.com/aacebedo/dnsdock. It is used for container to container requests through Nginx. An application's docker-compose.yml should define `dns` configuration with environment variable `$DIP_DNS` and connect to external network `frontend`. `$DIP_DNS` will be automatically assigned by dip.
|
data/lib/dip/cli/nginx.rb
CHANGED
@@ -16,12 +16,13 @@ module Dip
|
|
16
16
|
desc: 'Path to docker socket'
|
17
17
|
method_option :net, aliases: '-t', type: :string, default: "frontend",
|
18
18
|
desc: 'Container network name'
|
19
|
-
method_option :publish, aliases: '-p', type: :
|
20
|
-
desc: 'Container port'
|
19
|
+
method_option :publish, aliases: '-p', type: :array, default: "80:80",
|
20
|
+
desc: 'Container port(s). For more than one port, separate them by a space'
|
21
21
|
method_option :image, aliases: '-i', type: :string, default: "bibendi/nginx-proxy:latest",
|
22
22
|
desc: 'Docker image name'
|
23
23
|
method_option :domain, aliases: '-d', type: :string, default: "docker",
|
24
24
|
desc: 'Top level domain'
|
25
|
+
method_option :certs, aliases: '-c', type: :string, desc: 'Path to ssl certificates'
|
25
26
|
def up
|
26
27
|
if options[:help]
|
27
28
|
invoke :help, ['up']
|
@@ -32,7 +33,8 @@ module Dip
|
|
32
33
|
net: options.fetch(:net),
|
33
34
|
publish: options.fetch(:publish),
|
34
35
|
image: options.fetch(:image),
|
35
|
-
domain: options.fetch(:domain)
|
36
|
+
domain: options.fetch(:domain),
|
37
|
+
certs: options[:certs]
|
36
38
|
).execute
|
37
39
|
end
|
38
40
|
end
|
data/lib/dip/commands/nginx.rb
CHANGED
@@ -7,13 +7,14 @@ module Dip
|
|
7
7
|
module Commands
|
8
8
|
module Nginx
|
9
9
|
class Up < Dip::Command
|
10
|
-
def initialize(name:, socket:, net:, publish:, image:, domain:)
|
10
|
+
def initialize(name:, socket:, net:, publish:, image:, domain:, certs:)
|
11
11
|
@name = name
|
12
12
|
@socket = socket
|
13
13
|
@net = net
|
14
14
|
@publish = publish
|
15
15
|
@image = image
|
16
16
|
@domain = domain
|
17
|
+
@certs = certs
|
17
18
|
end
|
18
19
|
|
19
20
|
def execute
|
@@ -26,8 +27,9 @@ module Dip
|
|
26
27
|
def container_args
|
27
28
|
result = %w(--detach)
|
28
29
|
result << "--volume #{@socket}:/tmp/docker.sock:ro"
|
30
|
+
result << "--volume #{@certs}:/etc/nginx/certs" unless @certs.to_s.empty?
|
29
31
|
result << "--restart always"
|
30
|
-
result << "--publish #{
|
32
|
+
result << Array(@publish).map { |p| "--publish #{p}" }.join(' ')
|
31
33
|
result << "--net #{@net}"
|
32
34
|
result << "--name #{@name}"
|
33
35
|
result << "--label com.dnsdock.alias=#{@domain}"
|
data/lib/dip/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dip
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- bibendi
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-11-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|