Project

picobox

0.01
No commit activity in last 3 years
No release in over 3 years
There's a lot of open issues
Docker development environment for humans
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
 Dependencies

Development

Runtime

 Project Readme

Picobox

Docker development environment for humans.

Don't want to learn a whole -bunch --of -commands_with_flags/just -to run_rails || other_things?

Start picobox and continue with the way you have always done things, except now, isolated inside containers

Install CLI

$ gem install picobox
$ picobox install

That's it your done

Available boxes

elixir
nodejs
python
rails
ruby

Usage

demo (may take a sec to load)

Create rails box

$ mkdir -p Code/rails
$ cd Code/rails
$ picobox init rails

Your box is up and running, use your container-ized rails as you would normally

Create a rails project

$ gem install rails --no-ri --no-rdoc
$ rails new .
$ rails c
$ rake -T
$ rails s

Install gems, irb, bundler and more

$ gem install rails --no-ri --no-rdoc
$ irb
$ bundle install
$ ruby

Everything is running inside your box transparently !

Detailed Usage

Commands:
  picobox boxes               # list of available boxes
  picobox help [COMMAND]      # Describe available commands or one specific command
  picobox init [BOX]          # initialize directory for use with picobox
  picobox install             # installs picobox
  picobox reset               # reset picobox containers
  picobox restart             # restart picobox
  picobox service SUBCOMMAND  # do things with the SERVICES
  picobox ssh [SERVICE]       # open shell to service
  picobox start               # start picobox
  picobox status              # current status of containers
  picobox stop                # stop picobox
  picobox uninstall           # removes picobox
  picobox update              # udpates picobox
  picobox version             # displays current version

Commands:
  picobox service add [SERVICE]             # adds a service to your box
  picobox service build [SERVICE] optional  # builds the picobox
  picobox service help [COMMAND]            # Describe subcommands or one specific subcommand
  picobox service list                      # list available services
  picobox service remove [SERVICE]          # removes a service from your box

Options:
  [--verbose], [--no-verbose]  # Verbose debugging output

Dependencies

Linux

  • build-essential
  • ruby
  • ruby-dev

Development

To run the tests you'll need ruby 2.3 since we are using the <<~EOS operator (un-indented multiline strings)

After checking out the repo, run bin/setup to install dependencies. Then, run bundle exec rspec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To use without installing, use:

$ bin/picobox_dev version

To run tests:

$ bundle exec guard -g rspec
$ bundle exec guard -g acceptance
$ bundle exec guard -g wip

To install locally:

$ rake build
$ gem install pkg/picobox-x.x.x.gem

Helpful stuff

debug during an aruba test run

export REMOTE_DEBUG=true
guard -g wip

then connect using:

$ bundle exec byebug -R localhost:8989

will show that last command aruba executed

(byebug) last_command_started

TODO

  • Install runtime dependecies on linux during setup
  • Documentation (both in code and wiki)
  • Include aliases specific to the box when unpacking (maybe)
  • Add destroy command
  • Explore Habitus API web server to add ssh keys to containers**
  • Use traefik.io for dns
  • Uninstall should stop and remove all instances that are running
  • Some services should install thier own volumes
  • Remove TTY::File, TTY::Prompt dependency (needs native extensions)
  • Rake spec / test etc should point to test instance

**http://blog.cloud66.com/using-ssh-private-keys-securely-in-docker-build/

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/surzycki/picobox/issues. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

License

The gem is available as open source under the terms of the MIT License.