pderichs / sublime_rubocop

A Sublime Text RuboCop plugin.
238 stars 41 forks source link

Using a Docker container doesn't work #69

Open zedtux opened 1 year ago

zedtux commented 1 year ago
Steps to reproduce:
  1. Install the latest version of this plugin and Docker
  2. 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 $@

3. Make it executable with `chmod +x`
4. Configure this plugin with:
```javascript
{
  "rubocop_command": "/usr/local/bin/rubocop",
  "check_for_rvm": false
}
  1. 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) ... ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


6. 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.
zedtux commented 1 year ago

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,

zedtux commented 1 year ago

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.

zedtux commented 2 months ago

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.

zedtux commented 2 months ago

Actually, the PR #70 fixes the mentioned issue!