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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/README.md +1 -0
- data/lib/picobox.rb +6 -1
- data/lib/picobox/box.rb +4 -4
- data/lib/picobox/boxes/{unpacker.rb → installer.rb} +2 -2
- data/lib/picobox/commands/add_box.rb +2 -4
- data/lib/picobox/commands/add_service.rb +1 -3
- data/lib/picobox/commands/initialize_project.rb +9 -14
- data/lib/picobox/commands/install_config.rb +17 -0
- data/lib/picobox/commands/list_boxes.rb +1 -1
- data/lib/picobox/commands/remove_service.rb +1 -3
- data/lib/picobox/commands/remove_setup_shell.rb +2 -13
- data/lib/picobox/commands/restart.rb +3 -4
- data/lib/picobox/commands/setup_shell.rb +1 -5
- data/lib/picobox/commands/ssh_instance.rb +2 -5
- data/lib/picobox/commands/start.rb +1 -4
- data/lib/picobox/commands/start_uninstall.rb +2 -7
- data/lib/picobox/commands/stop.rb +1 -4
- data/lib/picobox/commands/update_packages.rb +30 -0
- data/lib/picobox/constants.rb +11 -8
- data/lib/picobox/handlers/stdout_handler.rb +16 -3
- data/lib/picobox/os/abstract.rb +4 -0
- data/lib/picobox/os/distro.rb +11 -5
- data/lib/picobox/project.rb +3 -0
- data/lib/picobox/service.rb +4 -0
- data/lib/picobox/shell/ini_file.rb +38 -0
- data/lib/picobox/shell/startup_script.rb +4 -2
- data/lib/picobox/system.rb +5 -0
- data/lib/picobox/utils/output.rb +2 -1
- data/lib/picobox/utils/packages.rb +37 -0
- data/picobox.gemspec +2 -1
- metadata +21 -23
- data/lib/picobox/boxes/packages/elixir/Dockerfile +0 -52
- data/lib/picobox/boxes/packages/elixir/docker-compose.yml +0 -26
- data/lib/picobox/boxes/packages/elixir/info +0 -18
- data/lib/picobox/boxes/packages/elixir/start +0 -3
- data/lib/picobox/boxes/packages/python/Dockerfile +0 -29
- data/lib/picobox/boxes/packages/python/docker-compose.yml +0 -14
- data/lib/picobox/boxes/packages/python/start +0 -3
- data/lib/picobox/boxes/packages/rails/Dockerfile +0 -74
- data/lib/picobox/boxes/packages/rails/docker-compose.yml +0 -47
- data/lib/picobox/boxes/packages/rails/start +0 -9
- data/lib/picobox/boxes/packages/ruby/Dockerfile +0 -46
- data/lib/picobox/boxes/packages/ruby/docker-compose.yml +0 -20
- data/lib/picobox/boxes/packages/ruby/start +0 -3
- data/lib/picobox/services/packages/elasticsearch/config.yml +0 -14
- data/lib/picobox/services/packages/memcached/config.yml +0 -9
- data/lib/picobox/services/packages/mongodb/config.yml +0 -13
- data/lib/picobox/services/packages/mysql/config.yml +0 -17
- data/lib/picobox/services/packages/postgres/config.yml +0 -16
- data/lib/picobox/services/packages/redis/config.yml +0 -7
- 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,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,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,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,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,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,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
|
-
|