sublime_rubocop
sublime_rubocop copied to clipboard
Using a Docker container doesn't work
Steps to reproduce:
- Install the latest version of this plugin and Docker
- Create a shell script which runs the Docker command to run Rubocop from a container:
#!/usr/bin/env bash
docker run --rm -it -v ${PWD}:/code registry.gitlab.com/pipeline-components/rubocop:latest $@
- Make it executable with
chmod +x - Configure this plugin with:
{
"rubocop_command": "/usr/local/bin/rubocop",
"check_for_rvm": false
}
- Check if it is working:
$ rubocop --version
1.52.1
$ rubocop my_ruby_file.rb
Inspecting 1 file
C
Offenses:
my_ruby_file.rb:45:3: C: Metrics/MethodLength: Method has too many lines. [12/10]
def move_screenshot_html_to_public_folder_as(filename) ...
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Now open the Ruby file in Sublime Text
No Rubocop offenses reported in ST, and nothing is printed in the ST console, no idea what is going wrong.
I have updated my script in order to write into a file the command that is going to be executed, but no log file appears, like if the script is not ran at all.
BTW when I set a wrong path as rubocop_command, I do have an error in ST stating the given path doesn't exist.
Finally, I got it working!
The issue was the -it which was expecting a TTY, which is not the case with a Bash script. After removing it, Docker runs,
But something which doesn't work still is running Rubocop when opening a file. I have to run "Check current file" manually in order to get it working.
Since my last comment, the PWD env variable is no more the current project path. I have a working fix on my local machine, I will open a PR so that this issue could be closed with the PR.
Actually, the PR #70 fixes the mentioned issue!