Skip to content
This repository has been archived by the owner on Sep 15, 2024. It is now read-only.
/ zsh-docker-run Public archive

Run your favourite commands naturally, with Docker

Notifications You must be signed in to change notification settings

rawkode/zsh-docker-run

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 

Repository files navigation

zsh-docker-run

Run commands naturally, forgetting all about Docker

Run commands "naturally" without having them installed, using Docker.

Why?

As we adopt Docker more, we install a whole lot less on our machines. Instead of installing node, php, ruby - we pull their latest Docker images. This means that simple commands, such as npm install and irb become more cumbersome, such as:

docker run --rm -it --entrypoint=irb ruby:latest

It'd be much better if we could work as we used to, keeping our simple commands. Your first thought might be "use an alias" ... but we want to be better than that. What if we're inside of a project that's using docker-compose and we want to update our node packages?

Normally, this is just npm update; but instead, we now need to use docker-compose run --rm node npm update

Using this plugin, we can detect these situations for you. Go back to using npm update. Just add a simple function and call run_with_docker 😄

How?

Install this plugin with your favourite zsh plugin manager, I use zplug:

# For zplug
zplug "rawkode/zsh-docker-run"

Now all you need to-do is add some functions to your .zshrc file:

function example {
  run_with_docker "image_name" "image_tag" "command" $@
}

function npm {
  run_with_docker "node" "alpine" "npm" $@
}

More Examples

function elixir() {
  run_with_docker "elixir" "latest" "elixir" $@
}

function iex() {
  run_with_docker "elixir" "latest" "iex" $@
}

function mix() {
  run_with_docker "elixir" "latest" "mix" $@
}

function go() {
  run_with_docker "golang" "latest" "go" $@
}

function php() {
  run_with_docker "php" "latest" "php" $@
}

What's Next?

  • I'd like to provide a simpler interface, replacing functions with a map?
  • Possibly provide a bunch of defaults, enabling the more popular commands

About

Run your favourite commands naturally, with Docker

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages