docker_compose_env 0.1.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 11cda084bdb92a72404dc9149c5f26496c79eeef
4
+ data.tar.gz: d254e3e1f07eb0923a9d6d9aa7554ec54701d11c
5
+ SHA512:
6
+ metadata.gz: ff61e526e2b6916a7f555e9efc9b5a8913faa427519941a8dbdd49b1e336811aa3b657bfdb9e4623866426597c34d9849eb289129d0aee1233d72519eee28bf9
7
+ data.tar.gz: 54c3df068e8e335708544f08c926b57d9712e280895ccc0796352d356732a397f0690b4ce959155f44a4117b9f8bfa2e1fda38b10fc07175f4af8a10041f705a
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/.rubocop.yml ADDED
@@ -0,0 +1,3 @@
1
+ Metrics/LineLength:
2
+ Max: 100
3
+
data/.tool-versions ADDED
@@ -0,0 +1 @@
1
+ ruby 2.4.1
data/.travis.yml ADDED
@@ -0,0 +1,24 @@
1
+ language: ruby
2
+ sudo: required
3
+
4
+ env:
5
+ - DOCKER_COMPOSE_VERSION=1.16.1
6
+
7
+ before_install:
8
+ - docker version
9
+ - docker-compose version
10
+ - sudo apt-get update
11
+ - sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce
12
+ - gem install bundler -v 1.15.4
13
+ - sudo rm /usr/local/bin/docker-compose
14
+ - curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose
15
+ - chmod +x docker-compose
16
+ - sudo mv docker-compose /usr/local/bin
17
+ - docker version
18
+ - docker-compose version
19
+
20
+ rvm:
21
+ - 2.4.1
22
+
23
+ services:
24
+ - docker
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
+
5
+ gemspec name: 'docker_compose_env'
6
+ gemspec name: 'docker_compose_env_rails'
data/LICENSE ADDED
@@ -0,0 +1,23 @@
1
+
2
+ Copyright (c) 2017 Jonathan Knapp
3
+
4
+ MIT License
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining
7
+ a copy of this software and associated documentation files (the
8
+ "Software"), to deal in the Software without restriction, including
9
+ without limitation the rights to use, copy, modify, merge, publish,
10
+ distribute, sublicense, and/or sell copies of the Software, and to
11
+ permit persons to whom the Software is furnished to do so, subject to
12
+ the following conditions:
13
+
14
+ The above copyright notice and this permission notice shall be
15
+ included in all copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
21
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,114 @@
1
+ # DockerComposeEnv
2
+
3
+ Simplify configuration between Docker Compose and Ruby/Rails apps in development.
4
+
5
+ If you run Rails outside of Docker, this helps your application play be a better
6
+ first class citizen with your dev machine by utilizing dynamic port mapping in
7
+ Docker Compose services.
8
+
9
+ To read more about the problems this gem solves, check out the
10
+ [Why Does This Exist?](docs/why.md) documentation.
11
+
12
+ If your team is comfortable running Rails inside a container or you are looking
13
+ for a production solution for service discovery, this is _not_ what you want.
14
+
15
+
16
+ ## Installation / Usage
17
+
18
+ For a Rails app, add this gem to your Gemfile in the development / test groups.
19
+
20
+ ```ruby
21
+ group :development, :test do
22
+ gem 'docker_compose_env_rails'
23
+ end
24
+ ```
25
+
26
+ You will now have new `ENV` properties set from the `docker-compose.yml` file
27
+ in your project directory. The following compose config would assign
28
+ `ENV['DB_HOST']` and `ENV['DB_PORT_5432']` to the values returned
29
+ from running `docker-compose port db 5432`, the host and dynamically mapped
30
+ port assigned after you ran `docker-compose up`.
31
+
32
+ ```yaml
33
+ version: '3.3'
34
+
35
+ services:
36
+ db:
37
+ image: postgres:9.6-alpine
38
+ env_file: .env
39
+ ports:
40
+ - "5432"
41
+ ```
42
+
43
+ That means your Rails `config/database.yml` file could look like:
44
+
45
+ ```yaml
46
+ default: &default
47
+ adapter: postgresql
48
+ encoding: unicode
49
+ host: <%= ENV['DB_HOST'].to_i %>
50
+ password: example
51
+ pool: 5
52
+ port: <%= ENV['DB_PORT_5432'].to_i %>
53
+ username: postgres
54
+
55
+ development:
56
+ <<: *default
57
+ database: app
58
+
59
+ test:
60
+ <<: *default
61
+ database: app_test
62
+ ```
63
+
64
+ ### Load Faster!
65
+
66
+ If you need to load the dynamic port information faster than the
67
+ `before_configuration` call in `Railties`, you can add the `docker_compose_env`
68
+ gem higher up in the `Gemfile` and load it with a special require path:
69
+
70
+ ```ruby
71
+ gem `docker_compose_env`, require: 'docker_compose_env/now'
72
+ ```
73
+
74
+ ### Further Customization
75
+
76
+ Unfortunately, there's only so much automagic that can be done. If you need to
77
+ customize the `docker-compose.yml` file name or location, or if you'd like to
78
+ collect the dynamic information somewhere besides `ENV`, you will need to
79
+ require the `docker_compose_env` gem and set it up yourself.
80
+
81
+ ```ruby
82
+ # expects docker-compose.yml file and adds values to ENV
83
+ DockerComposeEnv.setup!
84
+
85
+ # customize docker-compose.yml path and adds values to ENV
86
+ DockerComposeEnv.setup!(file: 'docker/docker-compose.dev.yml')
87
+
88
+ # add dynamic values to custom object instead of ENV
89
+ config = {}
90
+ DockerComposeEnv.setup!(env: config)
91
+ puts config
92
+
93
+ # add dynamic values to custom object instead of ENV and custom compose path
94
+ config = {}
95
+ DockerComposeEnv.setup!(env: config, file: 'custom/path.yml')
96
+ puts config
97
+ ```
98
+
99
+
100
+ ## Development
101
+
102
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run
103
+ `rake test` to run the tests. You can also run `bin/console` for an interactive
104
+ prompt that will allow you to experiment.
105
+
106
+ To install this gem onto your local machine, run `bundle exec rake install`. To
107
+ release a new version, update the version number in `version.rb`, and then run
108
+ `bundle exec rake release`, which will create a git tag for the version, push
109
+ git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
110
+
111
+
112
+ ## Contributing
113
+
114
+ Bug reports and pull requests are welcome on GitHub at https://github.com/CoffeeAndCode/docker_compose_env.
data/Rakefile ADDED
@@ -0,0 +1,22 @@
1
+ require 'bundler/gem_helper'
2
+ require 'rake/testtask'
3
+
4
+ namespace 'docker_compose_env' do
5
+ Bundler::GemHelper.install_tasks name: 'docker_compose_env'
6
+ end
7
+
8
+ namespace 'docker_compose_env_rails' do
9
+ Bundler::GemHelper.install_tasks name: 'docker_compose_env_rails'
10
+ end
11
+
12
+ task build: ['docker_compose_env:build', 'docker_compose_env_rails:build']
13
+ task install: ['docker_compose_env:install', 'docker_compose_env_rails:install']
14
+ task release: ['docker_compose_env:release', 'docker_compose_env_rails:release']
15
+
16
+ Rake::TestTask.new(:test) do |t|
17
+ t.libs << 'test'
18
+ t.libs << 'lib'
19
+ t.test_files = FileList['test/**/*_test.rb']
20
+ end
21
+
22
+ task default: :test
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'bundler/setup'
4
+ require 'docker_compose_env'
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require 'pry'
11
+ # Pry.start
12
+
13
+ require 'irb'
14
+ IRB.start(__FILE__)
data/bin/lint ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env bash
2
+
3
+ bundle exec reek
4
+ bundle exec rubocop
data/bin/setup ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
@@ -0,0 +1,32 @@
1
+ # coding: utf-8
2
+
3
+ lib = File.expand_path('../lib', __FILE__)
4
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+ require 'docker_compose_env/version'
6
+
7
+ Gem::Specification.new do |spec|
8
+ spec.name = 'docker_compose_env'
9
+ spec.version = DockerComposeEnv::VERSION
10
+ spec.authors = ['Jonathan Knapp']
11
+ spec.email = ['jon@coffeeandcode.com']
12
+
13
+ # rubocop:disable LineLength
14
+ spec.description = 'Simplify configuration between Docker Compose and Ruby/Rails apps in development.'
15
+ # rubocop:enable LineLength
16
+ spec.summary = spec.description
17
+ spec.homepage = 'https://github.com/CoffeeAndCode/docker_compose_env'
18
+ spec.license = 'MIT'
19
+
20
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
21
+ f.match(%r{^(features|spec|test)/})
22
+ end
23
+ spec.bindir = 'exe'
24
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
+ spec.require_paths = ['lib']
26
+
27
+ spec.add_development_dependency 'bundler', '~> 1.15'
28
+ spec.add_development_dependency 'rake', '~> 12.0'
29
+ spec.add_development_dependency 'reek'
30
+ spec.add_development_dependency 'rubocop'
31
+ spec.add_development_dependency 'minitest', '~> 5.10'
32
+ end
@@ -0,0 +1,27 @@
1
+ # coding: utf-8
2
+
3
+ lib = File.expand_path('../lib', __FILE__)
4
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+ require 'docker_compose_env/version'
6
+
7
+ Gem::Specification.new do |spec|
8
+ spec.name = 'docker_compose_env_rails'
9
+ spec.version = DockerComposeEnv::VERSION
10
+ spec.authors = ['Jonathan Knapp']
11
+ spec.email = ['jon@coffeeandcode.com']
12
+
13
+ spec.description = 'Automate docker_compose_env in Rails.'
14
+ spec.summary = spec.description
15
+ spec.homepage = 'https://github.com/CoffeeAndCode/docker_compose_env'
16
+ spec.license = 'MIT'
17
+
18
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
19
+ f.match(%r{^(features|spec|test)/})
20
+ end
21
+ spec.bindir = 'exe'
22
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
+ spec.require_paths = ['lib']
24
+
25
+ spec.add_dependency 'docker_compose_env', DockerComposeEnv::VERSION
26
+ spec.add_dependency 'railties', '>= 3.2', '< 5.2'
27
+ end
data/docs/why.md ADDED
@@ -0,0 +1,116 @@
1
+ # Why Does This Exist?
2
+
3
+ I've repeatedly ran into configuration issues integrating Docker into my team's
4
+ development environment. While I love what containers can bring to bootstrapping
5
+ a project, I'm not sold on moving my development environment into a Docker
6
+ container. That means, niceities that I could depend on (like easy mapping to
7
+ other services) falls short and I end up having to map ports to developer host
8
+ machines. This creates problems when those ports are already in use and there
9
+ was no simple solution (that I found) to address simplifying configuration.
10
+
11
+
12
+ ### The Problem
13
+
14
+ If you run your Ruby and/or Rails application outside of a Docker container,
15
+ you normally have to hardcode the port mapping to connect to services managed
16
+ by Docker Compose. For example, running a Rails application that connects with
17
+ a Postgres Docker container would include the following:
18
+
19
+ _.env_
20
+
21
+ ```bash
22
+ POSTGRES_DB=app_db_name
23
+ POSTGRES_PASSWORD=password
24
+ POSTGRES_USER=postgres
25
+ ```
26
+
27
+ _config/database.yml_
28
+
29
+ ```yaml
30
+ development: &development
31
+ adapter: postgresql
32
+ database: <%= ENV['POSTGRES_DB'] %>_dev
33
+ encoding: unicode
34
+ host: 127.0.0.1
35
+ password: <%= ENV['POSTGRES_PASSWORD'] %>
36
+ pool: 5
37
+ port: 5432
38
+ username: <%= ENV['POSTGRES_USER'] %>
39
+
40
+ test:
41
+ <<: *development
42
+ database: <%= ENV['POSTGRES_DB'] %>_test
43
+ ```
44
+
45
+ _docker-compose.yml_
46
+
47
+ ```yaml
48
+ version: '3.3'
49
+
50
+ services:
51
+ postgres:
52
+ image: postgres:9.6-alpine
53
+ env_file: .env
54
+ ports:
55
+ - "5432:5432"
56
+ ```
57
+
58
+ The good part is that this works just fine. However there are a few situations
59
+ where things start to fall down.
60
+
61
+ If you want to run your application on a machine that already has something
62
+ listening on that port, Docker Compose will be unable to map the port properly
63
+ (since it's already in use). That means if anyone has `mysql` or `postgres`
64
+ installed through Homebrew, there will need to be additional notes for them
65
+ to know how to work with your application.
66
+
67
+ If you happen to work on multiple Rails applications at the same time, you may
68
+ run into multiple projects each competing for the same local port mappings.
69
+ Solutions such as hardcoding a different port to map to per project work, but
70
+ add to the cognative overhead of working with the project.
71
+
72
+
73
+ ### The Solution
74
+
75
+ Instead of worrying about additional setup for your application, setup
76
+ Docker Compose to work with dynamic port assignments and inform your application
77
+ of the final ports to map to. This allows your configuration to look like this:
78
+
79
+ _.env_
80
+
81
+ ```bash
82
+ POSTGRES_DB=app_db_name
83
+ POSTGRES_PASSWORD=password
84
+ POSTGRES_USER=postgres
85
+ ```
86
+
87
+ _config/database.yml_
88
+
89
+ ```yaml
90
+ development: &development
91
+ adapter: postgresql
92
+ database: <%= ENV['POSTGRES_DB'] %>_dev
93
+ encoding: unicode
94
+ host: <%= ENV['POSTGRES_HOST'] %> # dynamically setup by gem (probably 0.0.0.0)
95
+ password: <%= ENV['POSTGRES_PASSWORD'] %>
96
+ pool: 5
97
+ port: <%= ENV['POSTGRES_PORT_5432'] %> # dynamically setup by gem
98
+ username: <%= ENV['POSTGRES_USER'] %>
99
+
100
+ test:
101
+ <<: *development
102
+ database: <%= ENV['POSTGRES_DB'] %>_test
103
+ ```
104
+
105
+ _docker-compose.yml_
106
+
107
+ ```yaml
108
+ version: '3.3'
109
+
110
+ services:
111
+ postgres:
112
+ image: postgres:9.6-alpine
113
+ env_file: .env
114
+ ports:
115
+ - "5432" # do not explicitly mention host port to map to
116
+ ```
@@ -0,0 +1,10 @@
1
+ # If you use gems that require environment variables to be set before they are
2
+ # loaded, then list `docker_compose_env` in the `Gemfile` before those
3
+ # other gems and require `docker_compose_env/now`.
4
+ #
5
+ # gem 'docker_compose_env', require: 'docker_compose_env/now'
6
+ # gem 'gem_that_requires_env_variables'
7
+ #
8
+
9
+ require 'docker_compose_env'
10
+ DockerComposeEnv.setup!
@@ -0,0 +1,9 @@
1
+ require 'docker_compose_env'
2
+ require 'rails'
3
+
4
+ module DockerComposeEnv
5
+ # Setup DockerComposeEnv before Rails initializers.
6
+ class Railtie < Rails::Railtie
7
+ config.before_configuration { DockerComposeEnv.setup! }
8
+ end
9
+ end
@@ -0,0 +1,3 @@
1
+ module DockerComposeEnv
2
+ VERSION = '0.1.0'.freeze
3
+ end
@@ -0,0 +1,46 @@
1
+ require 'docker_compose_env/version'
2
+ require 'yaml'
3
+
4
+ # The main module for DockerComposeEnv, this provides a single "easy mode"
5
+ # method for setting up the environment.
6
+ module DockerComposeEnv
7
+ def self.setup!(env: ENV, file: 'docker-compose.yml')
8
+ config = YAML.safe_load(File.read(file))
9
+
10
+ config.fetch('services', {}).keys.each do |service_name|
11
+ (config['services'][service_name]['ports'] || []).each do |container_port|
12
+ if /(\d+)\/udp$/ =~ container_port
13
+ parsed_port = /(?<port>\d+)\/udp$/.match(container_port).named_captures['port']
14
+
15
+ command = "docker-compose --file=#{file} port --protocol=udp #{service_name} #{parsed_port}"
16
+ compose_port_info = `#{command}`
17
+
18
+ if (compose_port_info =~ /^0\.0\.0\.0\:\d+\s*$/) == 0
19
+ if env["#{service_name.upcase}_HOST"].nil?
20
+ env["#{service_name.upcase}_HOST"] = '0.0.0.0'
21
+ end
22
+
23
+ if env["#{service_name.upcase}_PORT_#{parsed_port}_UDP"].nil?
24
+ env["#{service_name.upcase}_PORT_#{parsed_port}_UDP"] = compose_port_info.gsub(/0\.0\.0\.0:(\d+)\s*/, '\1')
25
+ end
26
+ end
27
+ else
28
+ command = "docker-compose --file=#{file} port #{service_name} #{container_port}"
29
+ compose_port_info = `#{command}`
30
+
31
+ if (compose_port_info =~ /^0\.0\.0\.0\:\d+\s*$/) == 0
32
+ if env["#{service_name.upcase}_HOST"].nil?
33
+ env["#{service_name.upcase}_HOST"] = '0.0.0.0'
34
+ end
35
+
36
+ if env["#{service_name.upcase}_PORT_#{container_port}"].nil?
37
+ env["#{service_name.upcase}_PORT_#{container_port}"] = compose_port_info.gsub(/0\.0\.0\.0:(\d+)\s*/, '\1')
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ rescue Errno::ENOENT => exception
44
+ raise exception unless exception.message == 'No such file or directory - docker-compose'
45
+ end
46
+ end
@@ -0,0 +1 @@
1
+ require 'docker_compose_env/railtie'
metadata ADDED
@@ -0,0 +1,134 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: docker_compose_env
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Jonathan Knapp
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2017-12-07 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.15'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.15'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '12.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '12.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: reek
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rubocop
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: minitest
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '5.10'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '5.10'
83
+ description: Simplify configuration between Docker Compose and Ruby/Rails apps in
84
+ development.
85
+ email:
86
+ - jon@coffeeandcode.com
87
+ executables: []
88
+ extensions: []
89
+ extra_rdoc_files: []
90
+ files:
91
+ - ".gitignore"
92
+ - ".rubocop.yml"
93
+ - ".tool-versions"
94
+ - ".travis.yml"
95
+ - Gemfile
96
+ - LICENSE
97
+ - README.md
98
+ - Rakefile
99
+ - bin/console
100
+ - bin/lint
101
+ - bin/setup
102
+ - docker_compose_env.gemspec
103
+ - docker_compose_env_rails.gemspec
104
+ - docs/why.md
105
+ - lib/docker_compose_env.rb
106
+ - lib/docker_compose_env/now.rb
107
+ - lib/docker_compose_env/railtie.rb
108
+ - lib/docker_compose_env/version.rb
109
+ - lib/docker_compose_env_rails.rb
110
+ homepage: https://github.com/CoffeeAndCode/docker_compose_env
111
+ licenses:
112
+ - MIT
113
+ metadata: {}
114
+ post_install_message:
115
+ rdoc_options: []
116
+ require_paths:
117
+ - lib
118
+ required_ruby_version: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: '0'
123
+ required_rubygems_version: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ version: '0'
128
+ requirements: []
129
+ rubyforge_project:
130
+ rubygems_version: 2.6.13
131
+ signing_key:
132
+ specification_version: 4
133
+ summary: Simplify configuration between Docker Compose and Ruby/Rails apps in development.
134
+ test_files: []