Docker utility container for Graylog plugin development
This container provides the right versions of graylog-project, javac and mvn utilities for Graylog 6.3 plugin development,
without dedicating your workstation to this purpose. This container is not designed to run as a server or daemon -- instead it executes a
single command (using the current working directory) and then stops and removes itself.
- Docker Desktop for Windows (Intel 64-bit CPU, WSL 2 recommended)
- Docker Desktop for Mac (Apple Silicon or Intel)
- Docker for Linux (ARM 64-bit CPU or Intel 64-bit CPU)
Define a bash/zsh alias:
alias tugboat='docker run -v $(pwd):/root/work -v $HOME/.m2:/root/.m2 -v $HOME/.ssh:/root/.ssh --rm -it robfromboulder/tugboat:6.3.0e'👆 Add this to ~/.bashrc or ~/.zshrc if you use tugboat frequently. This command maps the current working directory into the tugboat container, while using your existing SSH keys for authentication and Maven cache to minimize downloads.
Use Graylog CLI:
tugboat graylog-project versionUse javac:
tugboat javac --versionUse maven:
tugboat mvn --versionUse python:
tugboat python3 --versionUse ssh:
tugboat ssh -VUse bash to run commands interactively:
tugboat bashUse bash to run a single command:
tugboat bash -c "pwd"- Only the current working directory and its children are available to a tugboat session. Any script that uses
cd ..to go parent directories will end up in the container's root directories, instead of the parent directory on the host. The best workaround is to start tugboat from a common parent directory and then usetugboat bash -c "cd blah && ..."to move down into child directories.
© 2024-2025 Rob Dickinson (robfromboulder)
