picobox 0.2.6 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/README.md +1 -0
  4. data/lib/picobox.rb +6 -1
  5. data/lib/picobox/box.rb +4 -4
  6. data/lib/picobox/boxes/{unpacker.rb → installer.rb} +2 -2
  7. data/lib/picobox/commands/add_box.rb +2 -4
  8. data/lib/picobox/commands/add_service.rb +1 -3
  9. data/lib/picobox/commands/initialize_project.rb +9 -14
  10. data/lib/picobox/commands/install_config.rb +17 -0
  11. data/lib/picobox/commands/list_boxes.rb +1 -1
  12. data/lib/picobox/commands/remove_service.rb +1 -3
  13. data/lib/picobox/commands/remove_setup_shell.rb +2 -13
  14. data/lib/picobox/commands/restart.rb +3 -4
  15. data/lib/picobox/commands/setup_shell.rb +1 -5
  16. data/lib/picobox/commands/ssh_instance.rb +2 -5
  17. data/lib/picobox/commands/start.rb +1 -4
  18. data/lib/picobox/commands/start_uninstall.rb +2 -7
  19. data/lib/picobox/commands/stop.rb +1 -4
  20. data/lib/picobox/commands/update_packages.rb +30 -0
  21. data/lib/picobox/constants.rb +11 -8
  22. data/lib/picobox/handlers/stdout_handler.rb +16 -3
  23. data/lib/picobox/os/abstract.rb +4 -0
  24. data/lib/picobox/os/distro.rb +11 -5
  25. data/lib/picobox/project.rb +3 -0
  26. data/lib/picobox/service.rb +4 -0
  27. data/lib/picobox/shell/ini_file.rb +38 -0
  28. data/lib/picobox/shell/startup_script.rb +4 -2
  29. data/lib/picobox/system.rb +5 -0
  30. data/lib/picobox/utils/output.rb +2 -1
  31. data/lib/picobox/utils/packages.rb +37 -0
  32. data/picobox.gemspec +2 -1
  33. metadata +21 -23
  34. data/lib/picobox/boxes/packages/elixir/Dockerfile +0 -52
  35. data/lib/picobox/boxes/packages/elixir/docker-compose.yml +0 -26
  36. data/lib/picobox/boxes/packages/elixir/info +0 -18
  37. data/lib/picobox/boxes/packages/elixir/start +0 -3
  38. data/lib/picobox/boxes/packages/python/Dockerfile +0 -29
  39. data/lib/picobox/boxes/packages/python/docker-compose.yml +0 -14
  40. data/lib/picobox/boxes/packages/python/start +0 -3
  41. data/lib/picobox/boxes/packages/rails/Dockerfile +0 -74
  42. data/lib/picobox/boxes/packages/rails/docker-compose.yml +0 -47
  43. data/lib/picobox/boxes/packages/rails/start +0 -9
  44. data/lib/picobox/boxes/packages/ruby/Dockerfile +0 -46
  45. data/lib/picobox/boxes/packages/ruby/docker-compose.yml +0 -20
  46. data/lib/picobox/boxes/packages/ruby/start +0 -3
  47. data/lib/picobox/services/packages/elasticsearch/config.yml +0 -14
  48. data/lib/picobox/services/packages/memcached/config.yml +0 -9
  49. data/lib/picobox/services/packages/mongodb/config.yml +0 -13
  50. data/lib/picobox/services/packages/mysql/config.yml +0 -17
  51. data/lib/picobox/services/packages/postgres/config.yml +0 -16
  52. data/lib/picobox/services/packages/redis/config.yml +0 -7
  53. data/lib/picobox/templates/shell_extensions.bash +0 -135
@@ -1,18 +0,0 @@
1
- To create new phoenix project:
2
-
3
- $ picobox add postgres
4
- $ mix phx.new . --app helloworld
5
-
6
- Configure database:
7
-
8
- config/dev.exs:
9
- --------------------------------
10
- config :hello, Hello.Repo,
11
- adapter: Ecto.Adapters.Postgres,
12
- username: "picobox",
13
- password: "picobox",
14
- database: "helloworld_dev",
15
- hostname: "postgres",
16
- pool_size: 10
17
- --------------------------------
18
-
@@ -1,3 +0,0 @@
1
- #!/bin/bash
2
- # make an infinite process so we can enter containers
3
- tail -f /dev/null
@@ -1,29 +0,0 @@
1
- # python
2
- #
3
- # VERSION 0.0.2
4
-
5
- # Change this for different versions of ruby (see https://hub.docker.com/_/python/)
6
- # FROM python:3.5-slim
7
- # FROM python:3.4-slim
8
- FROM python:slim
9
- MAINTAINER Stefan Surzycki <stefan.surzycki@gmail.com>
10
-
11
- ENV APP_HOME ~
12
-
13
- # silence deb warnings
14
- ENV DEBIAN_FRONTEND noninteractive
15
- ENV HOSTNAME picobox
16
-
17
- # add repository software
18
- RUN apt-get update
19
-
20
- ## Tools
21
-
22
- # utils
23
- RUN apt-get install -y sudo nano wget git gcc openssh-client build-essential
24
-
25
- # set working dir
26
- WORKDIR $APP_HOME
27
-
28
- # hook up source files
29
- ADD . $APP_HOME
@@ -1,14 +0,0 @@
1
- version: '2'
2
- volumes:
3
- db-data:
4
- external: false
5
-
6
- services:
7
- dev:
8
- build: .
9
- entrypoint: ".picobox/start"
10
- environment:
11
- SSH_AUTH_SOCK: $SSH_AUTH_SOCK
12
- hostname: picobox
13
- volumes:
14
- - ".:/~:cached"
@@ -1,3 +0,0 @@
1
- #!/bin/bash
2
- # make an infinite process so we can enter containers
3
- tail -f /dev/null
@@ -1,74 +0,0 @@
1
- # picobox for use with rails containing ruby and nodejs
2
- #
3
- # VERSION 0.1.0
4
-
5
- # Change this for different versions of ruby (see https://hub.docker.com/_/ruby/)
6
- # FROM ruby:2.2-slim
7
- # FROM ruby:2.3-slim
8
-
9
- FROM ruby:slim-stretch
10
- MAINTAINER Stefan Surzycki <stefan.surzycki@gmail.com>
11
-
12
- ENV APP_HOME /var/www
13
- ENV PATH $APP_HOME/bin:$PATH
14
-
15
- # silence deb warnings
16
- ENV DEBIAN_FRONTEND noninteractive
17
- ENV HOSTNAME picobox
18
-
19
- # do install here
20
- RUN mkdir -p /tmp
21
- WORKDIR /tmp
22
-
23
- # add repository software
24
- RUN apt-get update
25
- RUN apt-get install -y build-essential software-properties-common tzdata wget curl gnupg2
26
-
27
- ## Languages
28
-
29
- # nodejs
30
- RUN curl -sL https://deb.nodesource.com/setup_6.x | bash -
31
- RUN apt-get install -y nodejs
32
-
33
-
34
- ## Database dependencies
35
-
36
- # postgres client
37
- RUN apt-get install -y libpq-dev postgresql-client
38
-
39
- # sql-lite
40
- RUN apt-get install -y libsqlite3-dev
41
-
42
- # mysql
43
- RUN apt-get install -y default-libmysqlclient-dev
44
-
45
-
46
- # Tools
47
-
48
- ## phantomjs pre-requisites
49
- RUN apt-get install -y chrpath libssl-dev libxft-dev
50
- RUN apt-get install -y libfreetype6 libfreetype6-dev
51
- RUN apt-get install -y libfontconfig1 libfontconfig1-dev
52
-
53
- # phantomjs latest
54
- RUN npm -g install phantomjs-prebuilt
55
-
56
- # install yarn
57
- RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
58
- RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
59
- RUN apt-get update && apt-get install -y yarn
60
-
61
- # utils
62
- RUN apt-get install -y nano git
63
-
64
- # make nano work
65
- RUN echo "export TERM=xterm" >> /etc/bash.bashrc
66
-
67
- # working dir
68
- WORKDIR $APP_HOME
69
-
70
- # add gemfile
71
- ONBUILD ADD Gemfile* $APP_HOME/
72
-
73
- # hook up source
74
- ONBUILD ADD . $APP_HOME
@@ -1,47 +0,0 @@
1
- ---
2
- version: '2'
3
- volumes:
4
- db-data:
5
- external: false
6
- bundle-data:
7
- external: false
8
- services:
9
- dev:
10
- build: "."
11
- entrypoint: ".picobox/start"
12
- volumes:
13
- - ".:/var/www:cached"
14
- volumes_from:
15
- - bundle
16
- environment:
17
- RAILS_ENV: development
18
- hostname: picobox
19
- ports:
20
- - 80:3000
21
- - 3000:3000
22
- test:
23
- build: "."
24
- entrypoint: ".picobox/start"
25
- volumes:
26
- - ".:/var/www:cached"
27
- volumes_from:
28
- - bundle
29
- environment:
30
- RAILS_ENV: test
31
- hostname: picobox_test
32
- webpack:
33
- build: "."
34
- entrypoint: ".picobox/start"
35
- volumes_from:
36
- - bundle
37
- volumes:
38
- - ".:/var/www:cached"
39
- environment:
40
- RAILS_ENV: development
41
- hostname: picobox
42
- ports:
43
- - 8080:8080
44
- bundle:
45
- image: busybox
46
- volumes:
47
- - bundle-data:/usr/local/bundle:cached
@@ -1,9 +0,0 @@
1
- #!/bin/bash
2
- if [ -f tmp/pids/server.pid ]; then
3
- rm tmp/pids/server.pid
4
- fi
5
-
6
- bundle check || bundle install
7
-
8
- # make an infinite process so we can enter containers
9
- tail -f /dev/null
@@ -1,46 +0,0 @@
1
- # picobox for use ruby and nodejs
2
- #
3
- # VERSION 0.1.0
4
-
5
- # Change this for different versions of ruby (see https://hub.docker.com/_/ruby/)
6
- # FROM ruby:2.2-slim
7
- # FROM ruby:2.3-slim
8
-
9
- FROM ruby:slim-stretch
10
- MAINTAINER Stefan Surzycki <stefan.surzycki@gmail.com>
11
-
12
- ENV APP_HOME /var/www
13
- ENV PATH $APP_HOME/bin:$PATH
14
-
15
- # silence deb warnings
16
- ENV DEBIAN_FRONTEND noninteractive
17
- ENV HOSTNAME picobox
18
-
19
- # do install here
20
- RUN mkdir -p /tmp
21
- WORKDIR /tmp
22
-
23
- # add repository software
24
- RUN apt-get update
25
- RUN apt-get install -y build-essential software-properties-common tzdata wget curl gnupg2
26
-
27
- ## Languages
28
-
29
- # nodejs
30
- RUN curl -sL https://deb.nodesource.com/setup_6.x | bash -
31
- RUN apt-get install -y nodejs
32
-
33
- # utils
34
- RUN apt-get install -y nano git
35
-
36
- # make nano work
37
- RUN echo "export TERM=xterm" >> /etc/bash.bashrc
38
-
39
- # working dir
40
- WORKDIR $APP_HOME
41
-
42
- # add gemfile
43
- ONBUILD ADD Gemfile* $APP_HOME/
44
-
45
- # hook up source
46
- ONBUILD ADD . $APP_HOME
@@ -1,20 +0,0 @@
1
- ---
2
- version: '2'
3
- volumes:
4
- db-data:
5
- external: false
6
- bundle-data:
7
- external: false
8
- services:
9
- dev:
10
- build: "."
11
- entrypoint: ".picobox/start"
12
- volumes:
13
- - ".:/var/www:cached"
14
- volumes_from:
15
- - bundle
16
- hostname: picobox
17
- bundle:
18
- image: busybox
19
- volumes:
20
- - bundle-data:/usr/local/bundle:cached
@@ -1,3 +0,0 @@
1
- #!/bin/bash
2
- # make an infinite process so we can enter containers
3
- tail -f /dev/null
@@ -1,14 +0,0 @@
1
- # the service
2
- elasticsearch:
3
- image: docker.elastic.co/elasticsearch/elasticsearch:5.5.2
4
- volumes:
5
- - db-data:/var/lib/elasticsearch/data
6
- ports:
7
- - '9200:9200'
8
-
9
- # create links to these services
10
- links:
11
- - dev
12
-
13
- # post install instructions
14
- instructions: elasticsearch exposes 9200 to the public
@@ -1,9 +0,0 @@
1
- # the service
2
- memcached:
3
- image: sameersbn/memcached:latest
4
- environment:
5
- CACHE_SIZE: '64'
6
-
7
- # create links to these services
8
- links:
9
- - dev
@@ -1,13 +0,0 @@
1
- # the service
2
- mongodb:
3
- image: mongo
4
- ports:
5
- - '27017:27017'
6
-
7
- # create links to these services
8
- links:
9
- - dev
10
- - test
11
-
12
- # post install instructions
13
- instructions: mongodb exposes 27017 to the public
@@ -1,17 +0,0 @@
1
- # the service
2
- mysql:
3
- image: mysql:5.7
4
- volumes:
5
- - db-data:/var/lib/mysql
6
- environment:
7
- MYSQL_ROOT_PASSWORD: picobox
8
- MYSQL_USER: picobox
9
- MYSQL_PASSWORD: picobox
10
-
11
- # create links to these services
12
- links:
13
- - dev
14
- - test
15
-
16
- # post install instructions
17
- instructions: mysql user, password and root password are 'picobox'
@@ -1,16 +0,0 @@
1
- # the service
2
- postgres:
3
- image: postgres:9.4
4
- volumes:
5
- - db-data:/var/lib/postgresql/db-data
6
- environment:
7
- POSTGRES_USER: 'picobox'
8
- POSTGRES_PASSWORD: 'picobox'
9
-
10
- # create links to these services
11
- links:
12
- - dev
13
- - test
14
-
15
- # post install instructions
16
- instructions: postgres user and password are 'picobox'
@@ -1,7 +0,0 @@
1
- # the service
2
- redis:
3
- image: redis
4
-
5
- # create links to these services
6
- links:
7
- - dev
@@ -1,135 +0,0 @@
1
- #!/bin/bash
2
- #
3
- # setup picobox proxies
4
- #
5
-
6
-
7
- ##
8
- ## functions
9
- ##
10
- project_root() {
11
- slashes=${PWD//[^\/]/}
12
- directory="$PWD"
13
- for (( n=${#slashes}; n>0; --n ))
14
- do
15
- test -e "$directory/.picobox" && echo "$directory/.picobox" && return
16
- directory="$directory/.."
17
- done
18
- }
19
-
20
- can_execute () {
21
- if [ -e "$(project_root)/project.ini" ]; then
22
- true
23
- else
24
- false
25
- fi
26
- }
27
-
28
- picobox_proxy () {
29
- if can_execute; then
30
- docker-compose exec "${@}"
31
- else
32
- if [ "$ZSH_NAME" ]; then
33
- `whence -p "$2"` "${@:3}"
34
- else
35
- `type -P "$2"` "${@:3}"
36
- fi
37
- fi
38
- }
39
-
40
- #picobox_cmd() {
41
- # case "${@[1]}" in
42
- # rails)
43
- # cmd=(dev bundle exec rails "${@:2}")
44
- # ;;
45
- # *)
46
- # echo "dunno"
47
- # esac
48
- #
49
- # picobox_proxy ${cmd[@]}
50
- #}
51
-
52
- ##
53
- ## ruby proxies
54
- ##
55
- picobox_gem () { cmd=(dev gem $@) ; picobox_proxy ${cmd[@]} ; }
56
- picobox_rake () { cmd=(dev rake $@) ; picobox_proxy ${cmd[@]} ; }
57
- picobox_bundle () { cmd=(dev bundle $@) ; picobox_proxy ${cmd[@]} ; }
58
- picobox_irb() { cmd=(dev irb $@) ; picobox_proxy ${cmd[@]} ; }
59
- picobox_ruby() { cmd=(dev ruby $@) ; picobox_proxy ${cmd[@]} ; }
60
-
61
- alias gem=picobox_gem
62
- alias rake=picobox_rake
63
- alias bundle=picobox_bundle
64
- alias irb=picobox_irb
65
- alias ruby=picobox_ruby
66
-
67
-
68
- ###
69
- ## rails proxies
70
- ##
71
- picobox_rails () { cmd=(dev bundle exec rails $@) ; picobox_proxy ${cmd[@]} ; }
72
- picobox_spring () { cmd=(dev bundle exec spring $@) ; picobox_proxy ${cmd[@]} ; }
73
- picobox_yarn () { cmd=(dev bundle exec yarn $@) ; picobox_proxy ${cmd[@]} ; }
74
- picobox_webpack () { cmd=(dev bundle exec webpack $@) ; picobox_proxy ${cmd[@]} ; }
75
- picobox_guard () { cmd=(test bundle exec guard $@) ; picobox_proxy ${cmd[@]} ; }
76
- picobox_rspec () { cmd=(test bundle exec rspec $@) ; picobox_proxy ${cmd[@]} ; }
77
-
78
- picobox_webpack_dev_server() { cmd=(webpack bundle exec webpack-dev-server $@) ; picobox_proxy ${cmd[@]} ; }
79
- picobox_webpack_watcher () { cmd=(webpack bundle exec webpack-watcher $@) ; picobox_proxy ${cmd[@]} ; }
80
-
81
-
82
- alias rails=picobox_rails
83
- alias rspec=picobox_rspec
84
- alias spring=picobox_spring
85
- alias yarn=picobox_yarn
86
- alias webpack=picobox_webpack
87
- alias webpack-dev-server=picobox_webpack_dev_server
88
- alias webpack-watcher=picobox_webpack_watcher
89
- alias guard=picobox_guard
90
-
91
- ##
92
- ## redis proxies
93
- ##
94
- picobox_redis_cli () { cmd=(redis redis-cli $@) ; picobox_proxy ${cmd[@]} ; }
95
-
96
- alias redis-cli=picobox_redis_cli
97
-
98
- ##
99
- ## postgres proxies
100
- ##
101
- picobox_psql () { cmd=(postgres psql $@) ; picobox_proxy ${cmd[@]} ; }
102
-
103
- alias psql=picobox_psql
104
-
105
- ##
106
- ## mysql proxies
107
- ##
108
- picobox_mysql () { cmd=(mysql mysql $@) ; picobox_proxy ${cmd[@]} ;}
109
-
110
- alias mysql=picobox_mysql
111
-
112
-
113
- ##
114
- ## elixir proxies
115
- ##
116
- picobox_elixir() { cmd=(dev elixir $@) ; picobox_proxy ${cmd[@]} ; }
117
- picobox_mix() { cmd=(dev mix $@) ; picobox_proxy ${cmd[@]} ; }
118
- picobox_iex() { cmd=(dev iex $@) ; picobox_proxy ${cmd[@]} ; }
119
- picobox_erl() { cmd=(dev erl $@) ; picobox_proxy ${cmd[@]} ; }
120
-
121
- alias elixir=picobox_elixir
122
- alias mix=picobox_mix
123
- alias iex=picobox_iex
124
- alias erl=picobox_erl
125
-
126
-
127
- ##
128
- ## python proxies
129
- ##
130
- picobox_python() { cmd=(dev python $@) ; picobox_proxy ${cmd[@]} ; }
131
- picobox_pip() { cmd=(dev pip $@) ; picobox_proxy ${cmd[@]} ; }
132
-
133
- alias python=picobox_python
134
- alias pip=picobox_pip
135
-