lucy_dockerunner 0.1.5 → 0.1.7

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
  SHA256:
3
- metadata.gz: 4446f3dd1ecb3193d0868bd3247ffa451352bddee1cf81e5d8e9bf9aad3936cb
4
- data.tar.gz: cc912d91c7691de292b7ea115a0fcada45871057d3a10e69132a088cdad5c294
3
+ metadata.gz: b7902c6fdd608e972b6025b32f6ef8731e37fa5e8249ef0446f0503ff450e184
4
+ data.tar.gz: ff2d987b86f299f91fe34060adfe93b07a00199f44cd3afdf730ce5347797878
5
5
  SHA512:
6
- metadata.gz: 1e48250f0baca9e750660853c344d4cf99abf7e6290d12aebb2ea07955e1964076af66417bdb391cf719d7f337c989c23bc9879bf0c722ee88dc370306e7a41c
7
- data.tar.gz: fd287ccf462d6017fc054ccf2e7075a6f17ccf871c24c4a29d60126adc8ab8394bd13462a0773dfb917584ad76649853354679b4705148365f92e7a97d22eb86
6
+ metadata.gz: 7f530d7c039fc703c258e6c791a12367255c7ca4cc1d0ee2e5eda38f5ad5686c532889e4b3a11a4b9137c6a00b93ee78a8c4b78d82d03b8ea151421ce00ce947
7
+ data.tar.gz: 6b58db241568b140abff172148afef7bae3986357ed6dd7fe56abe4f354fdacc427072718332e2fe9751fc5628d8431ea7e09fbbc5b7a98c1100622ab34b1b94
data/.rubocop.yml CHANGED
@@ -1,5 +1,7 @@
1
1
  AllCops:
2
2
  TargetRubyVersion: 2.6
3
+ SuggestExtensions: false
4
+ NewCops: enable
3
5
 
4
6
  Style/StringLiterals:
5
7
  Enabled: true
@@ -10,4 +12,9 @@ Style/StringLiteralsInInterpolation:
10
12
  EnforcedStyle: double_quotes
11
13
 
12
14
  Layout/LineLength:
13
- Max: 120
15
+ Max: 180
16
+
17
+ Metrics/BlockLength:
18
+ Exclude:
19
+ - 'spec/**/*'
20
+ - 'lib/tasks/**/*'
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lucy_dockerunner (0.1.5)
4
+ lucy_dockerunner (0.1.7)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # LucyDockerunner
1
+ # Lucy Dockerunner
2
2
 
3
3
  Lucy Dockerunner is a Ruby gem that provides a simple wrapper around the Docker Compose CLI to make it easier to run Docker Compose commands from Ruby On Rails projects.
4
4
 
@@ -8,8 +8,26 @@ Lucy Dockerunner is a Ruby gem that provides a simple wrapper around the Docker
8
8
 
9
9
  Ruby version: >= 2.6.0
10
10
 
11
- This gem version: 0.1.4
11
+ This gem version: 0.1.7
12
12
 
13
+ ## Dependencies
14
+
15
+ * [Docker](https://www.docker.com/)
16
+ * [Docker Compose](https://docs.docker.com/compose/)
17
+ * [Ruby On Rails](https://rubyonrails.org/) - or any other Ruby project that uses Docker Compose to run the project with specific services.
18
+
19
+ ## Files
20
+ This gem uses the following files to run the docker compose services:
21
+
22
+ - Dockerfile
23
+ - docker-compose.yml - development
24
+ - docker-compose.prod.yml - production
25
+
26
+ It's important to have .env files separated by environment, for example:
27
+ - .env.development
28
+ - .env.production
29
+
30
+ And remember to add the .env files to the .gitignore file and reference them in the docker-compose.yml and docker-compose.prod.yml files.
13
31
  ## Installation
14
32
 
15
33
  You can install the gem by executing:
@@ -29,7 +47,7 @@ require 'lucy_dockerunner'
29
47
  LucyDockerunner.load_tasks
30
48
  ````
31
49
 
32
- ###### Docker actions
50
+ ## Docker actions
33
51
  * `rake compose:install` - build docker compose and migrate the database
34
52
  * `rake compose:build` - build docker compose services
35
53
  * `rake compose:up` - start the docker compose services
@@ -45,7 +63,26 @@ LucyDockerunner.load_tasks
45
63
  * `rake compose:clean_volumes` - clean all docker compose volumes
46
64
  * `rake compose:clean_orphans` - clean all docker compose orphans
47
65
  * `rake compose:clean_containers` - clean all docker compose containers
48
- #### Database actions
66
+
67
+ ## Docker Production actions
68
+
69
+ * `rake compose_prod:install` - build docker compose and migrate the database
70
+ * `rake compose_prod:build` - build docker compose services
71
+ * `rake compose_prod:up` - start the docker compose services
72
+ * `rake compose_prod:down` - stop the docker compose services
73
+ * `rake compose_prod:status` - show the status of the docker compose services
74
+ * `rake compose_prod:shell` - open a shell in the web service
75
+ * `rake compose_prod:db_detach` - detach the database from the docker compose services
76
+ * `rake compose_prod:redis_detach` - detach the redis from the docker compose services
77
+ * `rake compose_prod:back_detach` - detach the backend(redis, sidekiq, db) from the docker compose services
78
+ * `rake compose_prod:restart` - restart the docker compose services
79
+ * `rake compose_prod:clean_all` - clean all docker compose services
80
+ * `rake compose_prod:clean_images` - clean all docker compose images
81
+ * `rake compose_prod:clean_volumes` - clean all docker compose volumes
82
+ * `rake compose_prod:clean_orphans` - clean all docker compose orphans
83
+ * `rake compose_prod:clean_containers` - clean all docker compose containers
84
+
85
+ ## Database actions
49
86
  * `rake compose_db:migrate` - migrate the database
50
87
  * `rake compose_db:reset` - reset the database
51
88
  * `rake compose_db:drop` - drop the database
@@ -57,7 +94,7 @@ LucyDockerunner.load_tasks
57
94
  * `rake compose_db:reset_setup` - drop and setup the database
58
95
  * `rake compose_db:reset` - reset the database
59
96
 
60
- ### Tests actions
97
+ ## Tests actions
61
98
  * `rake compose_test:all` - run all tests
62
99
  * `rake compose_test:clean_all` - run all tests after cleaning docker compose services
63
100
  * `rake compose_test:controllers` - run controllers tests
@@ -68,7 +105,7 @@ LucyDockerunner.load_tasks
68
105
  * `rake compose_test:routing` - run routing tests
69
106
  * `rake compose_test:views` - run views tests
70
107
 
71
- ### LOGS actions
108
+ ## LOGS actions
72
109
  * `rake compose_logs:web` - show web logs
73
110
  * `rake compose_logs:db` - show db logs
74
111
  * `rake compose_logs:redis` - show redis logs
@@ -80,13 +117,16 @@ LucyDockerunner.load_tasks
80
117
  * `rake compose_logs:tail_sidekiq` - tail sidekiq logs
81
118
  * `rake compose_logs:tail_all` - tail all logs
82
119
 
120
+ ## Assets actions
121
+ * `rake compose_assets:precompile` - precompile assets
122
+ * `rake compose_assets:clean` - clean assets
123
+ * `rake compose_assets:clobber` - clobber assets
124
+
125
+
83
126
  ## Start the docker compose services
84
127
  ````bash
85
128
  $ rake compose:up
86
129
  ````
87
- ### Access the web service
88
- http://localhost
89
-
90
130
 
91
131
  ## References
92
132
  The code code inside the 'lib/rake/lucyd_hooks.rb' file is based on the code of the [rake-hooks](https://github.com/guillermo/rake-hooks) from Guillermo Iguaran, Joel Moss as described in the [Ruby Toolbox](https://www.ruby-toolbox.com/projects/rake-hooks) page.
@@ -94,10 +134,19 @@ The code code inside the 'lib/rake/lucyd_hooks.rb' file is based on the code of
94
134
 
95
135
  Bug reports and pull requests are welcome on GitHub at https://github.com/JesusGautamah/lucy_dockerunner. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/JesusGautamah/lucy_dockerunner/blob/master/CODE_OF_CONDUCT.md).
96
136
 
137
+
138
+ ## [![Repography logo](https://images.repography.com/logo.svg)](https://repography.com) / Recent activity [![Time period](https://images.repography.com/33522702/JesusGautamah/lucy_dockerunner/recent-activity/7YfytFwl78FgWgAtJeO7jReo0y6GD6YPifcYNBxOxaE/yhI9H3pCZlEkfuvJLU9LC32UBu1c8k5toFvgUDmttdM_badge.svg)](https://repography.com)
139
+ [![Timeline graph](https://images.repography.com/33522702/JesusGautamah/lucy_dockerunner/recent-activity/7YfytFwl78FgWgAtJeO7jReo0y6GD6YPifcYNBxOxaE/yhI9H3pCZlEkfuvJLU9LC32UBu1c8k5toFvgUDmttdM_timeline.svg)](https://github.com/JesusGautamah/lucy_dockerunner/commits)
140
+ [![Issue status graph](https://images.repography.com/33522702/JesusGautamah/lucy_dockerunner/recent-activity/7YfytFwl78FgWgAtJeO7jReo0y6GD6YPifcYNBxOxaE/yhI9H3pCZlEkfuvJLU9LC32UBu1c8k5toFvgUDmttdM_issues.svg)](https://github.com/JesusGautamah/lucy_dockerunner/issues)
141
+ [![Pull request status graph](https://images.repography.com/33522702/JesusGautamah/lucy_dockerunner/recent-activity/7YfytFwl78FgWgAtJeO7jReo0y6GD6YPifcYNBxOxaE/yhI9H3pCZlEkfuvJLU9LC32UBu1c8k5toFvgUDmttdM_prs.svg)](https://github.com/JesusGautamah/lucy_dockerunner/pulls)
142
+ [![Top contributors](https://images.repography.com/33522702/JesusGautamah/lucy_dockerunner/recent-activity/7YfytFwl78FgWgAtJeO7jReo0y6GD6YPifcYNBxOxaE/yhI9H3pCZlEkfuvJLU9LC32UBu1c8k5toFvgUDmttdM_users.svg)](https://github.com/JesusGautamah/lucy_dockerunner/graphs/contributors)
143
+
144
+
145
+
97
146
  ## License
98
147
 
99
148
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
100
149
 
101
150
  ## Code of Conduct
102
151
 
103
- Everyone interacting in the LucyDockerunner project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/JesusGautamah/lucy_dockerunner/blob/master/CODE_OF_CONDUCT.md).
152
+ Everyone interacting in the LucyDockerunner project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/JesusGautamah/lucy_dockerunner/blob/master/CODE_OF_CONDUCT.md).
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module LucyDockerunner
4
- VERSION = "0.1.5"
4
+ VERSION = "0.1.7"
5
5
  end
@@ -1,9 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Rake::LucydHooks from https://github.com/guillermo/rake-hooks, authors Guillermo Iguaran, Joel Moss
3
+ # from https://github.com/guillermo/rake-hooks, authors Guillermo Iguaran, Joel Moss
4
4
  module Rake
5
+ # module Rake::Hooks
5
6
  module LucydHooks
6
- def before(*task_names, &new_task)
7
+ def bef(*task_names, &new_task)
7
8
  task_names.each do |task_name|
8
9
  old_task = Rake.application.instance_variable_get("@tasks").delete(task_name.to_s)
9
10
  next unless old_task
@@ -15,29 +16,8 @@ module Rake
15
16
  end
16
17
  end
17
18
  end
18
-
19
- def after(*task_names, &new_task)
20
- options = task_names.last.is_a?(Hash) ? task_names.pop : {}
21
- ignore_exceptions = options.delete(:ignore_exceptions) || false
22
-
23
- task_names.each do |task_name|
24
- old_task = Rake.application.instance_variable_get("@tasks").delete(task_name.to_s)
25
- next unless old_task
26
-
27
- desc old_task.full_comment if old_task.respond_to?(:full_comment)
28
- task task_name => old_task.prerequisites do
29
- begin
30
- old_task.invoke
31
- rescue StandardError
32
- raise unless ignore_exceptions
33
- end
34
-
35
- new_task.call
36
- end
37
- end
38
- end
39
19
  end
40
- end
41
20
 
42
- Rake::DSL.include Rake::LucydHooks if defined?(Rake::DSL)
43
- include Rake::LucydHooks unless self.class.included_modules.include?(Rake::LucydHooks)
21
+ Rake::DSL.include Rake::LucydHooks if defined?(Rake::DSL)
22
+ include Rake::LucydHooks unless self.class.included_modules.include?(Rake::LucydHooks)
23
+ end
@@ -187,8 +187,10 @@ end
187
187
 
188
188
  tasks_names.each do |task|
189
189
  before_action = "#{namesp}:#{task}"
190
- before before_action do
191
- dockerfile_checker ? abort("Dockerfile not found.\nYou must have a Dockerfile file.") : nil
192
- compose_checker ? (abort "Compose file not found.\nFor development, you must have a #{dev_compose_file} file.") : nil
190
+ bef before_action do
191
+ docker_abort_error = "Dockerfile not found.\nYou must have a Dockerfile file."
192
+ compose_abort_error = "Compose file not found.\nFor development, you must have a #{dev_compose_file} file."
193
+ dockerfile_checker ? abort(docker_abort_error) : puts("Dockerfile found.")
194
+ compose_checker ? abort(compose_abort_error) : puts("Compose file found.")
193
195
  end
194
196
  end
@@ -9,7 +9,7 @@ def task_helper
9
9
  end
10
10
 
11
11
  def compose_command
12
- @compose_comand ||= task_helper.compose_command
12
+ @compose_command ||= task_helper.compose_command
13
13
  end
14
14
 
15
15
  namespace :compose_assets do
@@ -8,7 +8,7 @@ def task_helper
8
8
  end
9
9
 
10
10
  def compose_command
11
- @compose_comand ||= task_helper.compose_command
11
+ @compose_command ||= task_helper.compose_command
12
12
  end
13
13
 
14
14
  namespace :compose_db do
@@ -8,7 +8,7 @@ def task_helper
8
8
  end
9
9
 
10
10
  def compose_command
11
- @compose_comand ||= task_helper.compose_command
11
+ @compose_command ||= task_helper.compose_command
12
12
  end
13
13
 
14
14
  namespace :compose_logs do
@@ -38,7 +38,8 @@ namespace :compose_prod do
38
38
  end
39
39
 
40
40
  task :install do
41
- puts "Installing Blockchain and Database Containers \nWARNING: This will delete all your data, and you are running this in production"
41
+ puts "Installing Blockchain and Database Containers \n
42
+ WARNING: This will delete all your data, and you are running this in production"
42
43
  # ask in terminal if you want to continue
43
44
  choice = ask("Are you sure you want to continue? (y/n)")
44
45
  if choice == "y"
@@ -241,8 +242,10 @@ end
241
242
 
242
243
  tasks_names.each do |task|
243
244
  before_action = "#{namesp}:#{task}"
244
- before before_action do
245
- dockerfile_checker ? abort("Dockerfile not found.\nYou must have a Dockerfile file.") : nil
246
- compose_checker ? (abort "Compose file not found.\nFor development, you must have a #{compose_file} file.") : nil
245
+ bef before_action do
246
+ docker_abort_error = "Dockerfile not found.\nYou must have a Dockerfile file."
247
+ compose_abort_error = "Compose file not found.\nYou must have a docker-compose.prod.yml file."
248
+ dockerfile_checker ? abort(docker_abort_error) : puts("Dockerfile found")
249
+ compose_checker ? abort(compose_abort_error) : puts("Compose Production file found")
247
250
  end
248
251
  end
@@ -8,7 +8,7 @@ def task_helper
8
8
  end
9
9
 
10
10
  def compose_command
11
- @compose_comand ||= task_helper.compose_command
11
+ @compose_command ||= task_helper.compose_command
12
12
  end
13
13
 
14
14
  namespace :compose_test do
@@ -4,9 +4,10 @@ require "English"
4
4
  require_relative "taskhelper"
5
5
 
6
6
  module TaskHelpers
7
+ # ComposeTaskhelper
7
8
  class ComposeTaskhelper < TaskHelpers::Taskhelper
8
9
  def compose_command
9
- @compose_comand ||= compose_command_finder
10
+ @compose_command ||= compose_command_finder
10
11
  end
11
12
 
12
13
  private
@@ -17,9 +18,9 @@ module TaskHelpers
17
18
  system "#{command} --version > /dev/null 2>&1"
18
19
  return command if $CHILD_STATUS.success?
19
20
 
20
- command = false unless $CHILD_STATUS.success?
21
+ command = false
22
+ raise ComposeError if command == false
21
23
  end
22
- raise ComposeError unless command == false
23
24
  end
24
25
  end
25
26
  end
@@ -1,7 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TaskHelpers
4
+ # Taskhelper
4
5
  class Taskhelper
6
+ # Compose Error
5
7
  class ComposeError < StandardError
6
8
  def initialize(message = "Docker Compose is not installed")
7
9
  super
@@ -10,15 +12,16 @@ module TaskHelpers
10
12
 
11
13
  private
12
14
 
13
- def dev_error(e)
15
+ def dev_error(error)
14
16
  return unless env_acceptable?
15
17
 
16
- puts "#{e.class}: #{e.message}"
17
- puts e.backtrace
18
+ puts "#{error.class}: #{error.message}"
19
+ puts error.backtrace
18
20
  end
19
21
 
20
22
  def env_acceptable?
21
- Rails.env.development? || Rails.env.test?
23
+ # Rails.env.development? || Rails.env.test?
24
+ true
22
25
  end
23
26
  end
24
27
  end
metadata CHANGED
@@ -1,19 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lucy_dockerunner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - JesusGautamah
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-02-13 00:00:00.000000000 Z
11
+ date: 2023-02-16 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: |-
14
14
  This gem is a tool to run docker containers with rake commands, good for CI/CD and Rails projects.
15
- It's a wrapper for docker-compose commands and original code was developed
16
- by me in the project https://github.com/JesusGautamah/outerspace-blockchain
15
+ Docs: https://github.com/JesusGautamah/lucy_dockerunner
17
16
  email:
18
17
  - lima.jesuscc@gmail.com
19
18
  executables: []
@@ -51,6 +50,7 @@ metadata:
51
50
  homepage_uri: https://github.com/JesusGautamah/lucy_dockerunner
52
51
  source_code_uri: https://github.com/JesusGautamah/lucy_dockerunner
53
52
  changelog_uri: https://github.com/JesusGautamah/lucy_dockerunner/blob/master/CHANGELOG.md
53
+ rubygems_mfa_required: 'true'
54
54
  post_install_message:
55
55
  rdoc_options: []
56
56
  require_paths:
@@ -66,7 +66,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
66
66
  - !ruby/object:Gem::Version
67
67
  version: '0'
68
68
  requirements: []
69
- rubygems_version: 3.3.26
69
+ rubygems_version: 3.4.1
70
70
  signing_key:
71
71
  specification_version: 4
72
72
  summary: This gem is a tool to run docker containers with rake commands, good for