ventriloquist 0.3.2 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -1
  3. data/CHANGELOG.md +47 -2
  4. data/Gemfile +2 -1
  5. data/Gemfile.lock +36 -28
  6. data/README.md +116 -41
  7. data/base_box/README.md +3 -0
  8. data/base_box/Vagrantfile +66 -0
  9. data/development/Vagrantfile +32 -11
  10. data/lib/ventriloquist/cap/platforms.rb +55 -0
  11. data/lib/ventriloquist/cap/{debian → platforms/debian}/elixir_install.rb +1 -0
  12. data/lib/ventriloquist/cap/{debian → platforms/debian}/erlang_install.rb +0 -0
  13. data/lib/ventriloquist/cap/{debian → platforms/debian}/go_install.rb +1 -1
  14. data/lib/ventriloquist/cap/{debian → platforms/debian}/phantomjs_install.rb +1 -1
  15. data/lib/ventriloquist/cap/{debian → platforms/debian}/python.rb +1 -0
  16. data/lib/ventriloquist/cap/{linux → platforms/linux}/nvm_install.rb +0 -0
  17. data/lib/ventriloquist/cap/{linux → platforms/linux}/nvm_install_nodejs.rb +0 -0
  18. data/lib/ventriloquist/cap/platforms/linux/rvm_install.rb +17 -0
  19. data/lib/ventriloquist/cap/{linux → platforms/linux}/rvm_install_ruby.rb +2 -3
  20. data/lib/ventriloquist/cap/services.rb +40 -0
  21. data/lib/ventriloquist/cap/{debian → services/debian}/mysql_install_client.rb +1 -1
  22. data/lib/ventriloquist/cap/{debian → services/debian}/mysql_install_headers.rb +1 -1
  23. data/lib/ventriloquist/cap/{debian → services/debian}/pg_install_client.rb +1 -1
  24. data/lib/ventriloquist/cap/{debian → services/debian}/pg_install_headers.rb +1 -1
  25. data/lib/ventriloquist/cap/{debian → services/debian}/ventriloquist_containers_upstart.rb +0 -0
  26. data/lib/ventriloquist/cap/{linux → services/linux}/mysql_configure_client.rb +0 -0
  27. data/lib/ventriloquist/cap/{linux → services/linux}/pg_export_pghost.rb +0 -0
  28. data/lib/ventriloquist/cap/utils.rb +40 -0
  29. data/lib/ventriloquist/cap/utils/debian/git_install.rb +13 -0
  30. data/lib/ventriloquist/cap/utils/debian/install_build_tools.rb +13 -0
  31. data/lib/ventriloquist/cap/utils/debian/install_packages.rb +47 -0
  32. data/lib/ventriloquist/cap/utils/debian/mercurial_install.rb +13 -0
  33. data/lib/ventriloquist/cap/utils/linux/download.rb +39 -0
  34. data/lib/ventriloquist/cap/{linux → utils/linux}/make.rb +0 -0
  35. data/lib/ventriloquist/cap/{linux → utils/linux}/untar.rb +0 -0
  36. data/lib/ventriloquist/config.rb +6 -3
  37. data/lib/ventriloquist/platforms/elixir.rb +1 -1
  38. data/lib/ventriloquist/platforms/go.rb +1 -1
  39. data/lib/ventriloquist/platforms/nodejs.rb +1 -0
  40. data/lib/ventriloquist/platforms/phantomjs.rb +1 -1
  41. data/lib/ventriloquist/platforms/ruby.rb +1 -0
  42. data/lib/ventriloquist/plugin.rb +3 -114
  43. data/lib/ventriloquist/provisioner.rb +12 -1
  44. data/lib/ventriloquist/service.rb +14 -7
  45. data/lib/ventriloquist/services/elastic_search.rb +12 -0
  46. data/lib/ventriloquist/services/mail_catcher.rb +12 -0
  47. data/lib/ventriloquist/services/memcached.rb +12 -0
  48. data/lib/ventriloquist/services/mysql.rb +5 -0
  49. data/lib/ventriloquist/services/postgresql.rb +5 -0
  50. data/lib/ventriloquist/services/redis.rb +12 -6
  51. data/lib/ventriloquist/services/rethink_db.rb +16 -0
  52. data/lib/ventriloquist/services_builder.rb +14 -5
  53. data/lib/ventriloquist/version.rb +1 -1
  54. data/locales/en.yml +6 -1
  55. data/services/base/Dockerfile +8 -7
  56. data/services/build-all.sh +6 -3
  57. data/services/elasticsearch/Dockerfile +6 -7
  58. data/services/mailcatcher/Dockerfile +3 -6
  59. data/services/memcached/Dockerfile +11 -12
  60. data/services/mysql/5.5/Dockerfile +17 -0
  61. data/services/mysql/{config → 5.5/config}/bin/add-mysql-user +0 -5
  62. data/services/mysql/5.6/Dockerfile +32 -0
  63. data/services/mysql/5.6/config/bin/add-mysql-user +15 -0
  64. data/services/mysql/5.6/config/etc/my.cnf +129 -0
  65. data/services/openjdk7/Dockerfile +1 -5
  66. data/services/postgresql/9.1/Dockerfile +5 -10
  67. data/services/postgresql/9.2/Dockerfile +7 -6
  68. data/services/postgresql/9.3/Dockerfile +16 -0
  69. data/services/postgresql/9.3/config/bin/prepare-postgres +25 -0
  70. data/services/postgresql/9.3/config/bin/start-postgres +6 -0
  71. data/services/postgresql/9.3/config/etc/postgresql/9.3/main/postgresql.conf +591 -0
  72. data/services/redis/Dockerfile +10 -6
  73. data/services/rethinkdb/Dockerfile +17 -0
  74. data/spec/unit/service_spec.rb +22 -12
  75. data/spec/unit/services_builder_spec.rb +26 -8
  76. data/ventriloquist.gemspec +1 -1
  77. metadata +46 -28
  78. data/lib/ventriloquist/cap/debian/git_install.rb +0 -18
  79. data/lib/ventriloquist/cap/debian/install_build_tools.rb +0 -18
  80. data/lib/ventriloquist/cap/debian/mercurial_install.rb +0 -18
  81. data/lib/ventriloquist/cap/linux/download.rb +0 -26
  82. data/lib/ventriloquist/cap/linux/rvm_install.rb +0 -17
  83. data/services/mysql/Dockerfile +0 -20
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module Ventriloquist
3
- VERSION = "0.3.2"
3
+ VERSION = "0.4.0"
4
4
  end
5
5
  end
@@ -1 +1,6 @@
1
- vagrant:
1
+ en:
2
+ ventriloquist:
3
+ install_packages_unsupported: |-
4
+ The guest VM does not support installing packages! Please open an issue
5
+ at https://github.com/fgrehm/ventriloquist/issues reporting your guest
6
+ distribution.
@@ -1,6 +1,4 @@
1
1
  # Base image for creating Ventriloquist services
2
- #
3
- # VERSION 0.0.1
4
2
 
5
3
  FROM ubuntu:quantal
6
4
  MAINTAINER Fabio Rehm "fgrehm@gmail.com"
@@ -8,8 +6,11 @@ MAINTAINER Fabio Rehm "fgrehm@gmail.com"
8
6
  ENV LC_ALL C
9
7
  ENV DEBIAN_FRONTEND noninteractive
10
8
 
11
- RUN echo "deb http://archive.ubuntu.com/ubuntu quantal main universe" > /etc/apt/sources.list
12
- RUN apt-get update && apt-get -y upgrade && apt-get clean
13
-
14
- RUN apt-get install -y wget curl vim language-pack-en build-essential software-properties-common && apt-get autoremove && apt-get clean
15
- RUN locale-gen en_US && echo 'LANG="en_US.UTF-8"' >> /etc/default/locale
9
+ RUN echo "deb http://archive.ubuntu.com/ubuntu quantal main universe" > /etc/apt/sources.list && \
10
+ apt-get update && \
11
+ apt-get -y upgrade && \
12
+ apt-get install -y wget curl vim language-pack-en build-essential software-properties-common && \
13
+ apt-get autoremove && \
14
+ apt-get clean && \
15
+ locale-gen en_US && \
16
+ echo 'LANG="en_US.UTF-8"' >> /etc/default/locale
@@ -6,11 +6,14 @@ PREFIX='fgrehm/ventriloquist'
6
6
 
7
7
  docker build -t ${PREFIX}-base base
8
8
 
9
- docker build -t ${PREFIX}-pg:latest postgresql/9.2
10
- docker tag ${PREFIX}-pg:latest ${PREFIX}-pg 9.2
9
+ docker build -t ${PREFIX}-pg postgresql/9.3
10
+ docker build -t ${PREFIX}-pg:9.2 postgresql/9.2
11
11
  docker build -t ${PREFIX}-pg:9.1 postgresql/9.1
12
12
 
13
- docker build -t ${PREFIX}-mysql mysql
13
+ docker build -t ${PREFIX}-mysql mysql/5.6
14
+ docker build -t ${PREFIX}-mysql:5.5 mysql/5.5
15
+
16
+ docker build -t ${PREFIX}-rethinkdb rethinkdb
14
17
 
15
18
  docker build -t ${PREFIX}-openjdk7 openjdk7
16
19
  docker build -t ${PREFIX}-elasticsearch elasticsearch
@@ -1,12 +1,11 @@
1
- # Elasticsearch 0.90.3
2
- #
3
- # VERSION 0.0.1
1
+ # Elasticsearch
4
2
 
5
3
  FROM fgrehm/ventriloquist-openjdk7
6
- MAINTAINER Fabio Rehm "fgrehm@gmail.com"
7
4
 
8
- ADD . /
9
- RUN /tmp/install-elasticsearch.sh && rm /tmp/install-elasticsearch.sh
5
+ RUN wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.7.deb -O /tmp/elasticsearch.deb -q --no-check-certificate && \
6
+ dpkg -i /tmp/elasticsearch.deb && \
7
+ rm /tmp/elasticsearch.deb && \
8
+ apt-get clean
10
9
 
11
- EXPOSE 9200:9200
10
+ EXPOSE 9200
12
11
  CMD ["/usr/share/elasticsearch/bin/elasticsearch", "-f"]
@@ -1,13 +1,10 @@
1
- # MailCatcher X.X.X
2
- #
3
- # VERSION 0.0.1
1
+ # MailCatcher
4
2
 
5
3
  FROM fgrehm/ventriloquist-base
6
- MAINTAINER Fabio Rehm "fgrehm@gmail.com"
7
4
 
8
5
  RUN apt-get install -y ruby ruby-dev sqlite3 libsqlite3-dev && apt-get clean
9
6
  RUN gem install mailcatcher --no-ri --no-rdoc
10
7
 
11
- EXPOSE 1025:1025
12
- EXPOSE 1080:1080
8
+ EXPOSE 1025
9
+ EXPOSE 1080
13
10
  CMD ["/usr/local/bin/mailcatcher", "-f", "--ip", "0.0.0.0"]
@@ -1,17 +1,16 @@
1
1
  # Memcached
2
- #
3
- # VERSION 0.0.1
4
2
 
5
3
  FROM fgrehm/ventriloquist-base
6
- MAINTAINER Fabio Rehm "fgrehm@gmail.com"
7
4
 
8
- # prevent apt from starting postgres right after the installation
9
- RUN echo "#!/bin/sh\nexit 101" > /usr/sbin/policy-rc.d; chmod +x /usr/sbin/policy-rc.d
5
+ RUN wget -q http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz -O /tmp/memcached.tar.gz && \
6
+ cd /tmp && \
7
+ tar xvfz memcached.tar.gz && \
8
+ cd memcached-1.4.15 && \
9
+ apt-get install libevent1-dev -y && \
10
+ ./configure --prefix=/usr/local/memcached && \
11
+ make && \
12
+ make install && \
13
+ cd .. && rm -rf memcached* && apt-get clean
10
14
 
11
- RUN apt-get install -y -q memcached && apt-get clean
12
-
13
- # allow autostart again
14
- RUN rm /usr/sbin/policy-rc.d
15
-
16
- EXPOSE 11211:11211
17
- CMD ["/usr/bin/memcached", "-u", "daemon"]
15
+ EXPOSE 11211
16
+ CMD ["/usr/local/memcached/bin/memcached", "-u", "daemon"]
@@ -0,0 +1,17 @@
1
+ # MySQL 5.5
2
+
3
+ FROM fgrehm/ventriloquist-base
4
+
5
+ # prevent apt from starting mysql right after the installation
6
+ RUN echo "#!/bin/sh\nexit 101" > /usr/sbin/policy-rc.d; chmod +x /usr/sbin/policy-rc.d && \
7
+ apt-get -q -y install mysql-server-5.5 && \
8
+ apt-get clean && \
9
+ sed -i 's/127.0.0.1/0.0.0.0/' /etc/mysql/my.cnf && \
10
+ apt-get clean && \
11
+ rm /usr/sbin/policy-rc.d # allow autostart again
12
+
13
+ ADD config /
14
+ RUN /bin/add-mysql-user
15
+
16
+ EXPOSE 3306
17
+ CMD ["/usr/sbin/mysqld"]
@@ -2,14 +2,9 @@
2
2
 
3
3
  set -e
4
4
 
5
- user=$1
6
- password=$2
7
-
8
5
  user='vagrant'
9
6
  password='vagrant'
10
7
 
11
- sed -i 's/127.0.0.1/0.0.0.0/' /etc/mysql/my.cnf
12
-
13
8
  mysqld& sleep 3
14
9
 
15
10
  mysqladmin -u root password $password
@@ -0,0 +1,32 @@
1
+ # MySQL 5.6
2
+ # Somehow based on http://www.peterchen.net/2013/02/20/en-how-to-install-mysql-5-6-on-ubuntu-12-04-precise/
3
+
4
+ FROM fgrehm/ventriloquist-base
5
+
6
+ RUN apt-get install libaio-dev -y && \
7
+ wget -q http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.14-debian6.0-x86_64.deb -O /tmp/mysql.deb && \
8
+ dpkg -i /tmp/mysql.deb && \
9
+ rm /tmp/mysql.deb && \
10
+ groupadd mysql && \
11
+ useradd -r -g mysql mysql && \
12
+ mkdir -p /etc/mysql/conf.d && \
13
+ mkdir -p /var/log/mysql && \
14
+ mkdir -p /var/run/mysqld && \
15
+ chown -R mysql:mysql /opt/mysql/server-5.6 && \
16
+ chown -R mysql:mysql /var/run/mysqld && \
17
+ /opt/mysql/server-5.6/scripts/mysql_install_db --user=mysql --datadir=/var/lib/mysql && \
18
+ rm /opt/mysql/server-5.6/my*.cnf && \
19
+ echo 'export PATH="/opt/mysql/server-5.6/bin:$PATH"' > /etc/profile.d/mysql.sh && \
20
+ apt-get clean && \
21
+ rm /opt/mysql/server-5.6/bin/mysqld-debug && \
22
+ rm /opt/mysql/server-5.6/bin/mysqltest_* && \
23
+ rm /opt/mysql/server-5.6/bin/mysql_client_test* && \
24
+ rm /opt/mysql/server-5.6/lib/libmysqld-debug.a && \
25
+ rm -rf /opt/mysql/server-5.6/mysql-test # Save some disk space
26
+
27
+ ADD config /
28
+
29
+ RUN /bin/add-mysql-user
30
+
31
+ EXPOSE 3306
32
+ CMD ["/opt/mysql/server-5.6/bin/mysqld"]
@@ -0,0 +1,15 @@
1
+ #!/bin/bash
2
+
3
+ set -e
4
+
5
+ user='vagrant'
6
+ password='vagrant'
7
+
8
+ source /etc/profile.d/mysql.sh
9
+ mysqld& sleep 3
10
+
11
+ mysqladmin -u root password $password
12
+
13
+ echo "create user '${user}'@'%' identified by '${password}';" | mysql -u root -p$password
14
+ echo "grant all on *.* to '${user}'@'%' with grant option;" | mysql -u root -p$password
15
+ echo "FLUSH PRIVILEGES;" | mysql -uroot -p${password}
@@ -0,0 +1,129 @@
1
+ #
2
+ # The MySQL database server configuration file.
3
+ #
4
+ # You can copy this to one of:
5
+ # - "/etc/mysql/my.cnf" to set global options,
6
+ # - "~/.my.cnf" to set user-specific options.
7
+ #
8
+ # One can use all long options that the program supports.
9
+ # Run program with --help to get a list of available options and with
10
+ # --print-defaults to see which it would actually understand and use.
11
+ #
12
+ # For explanations see
13
+ # http://dev.mysql.com/doc/mysql/en/server-system-variables.html
14
+
15
+ # This will be passed to all mysql clients
16
+ # It has been reported that passwords should be enclosed with ticks/quotes
17
+ # escpecially if they contain "#" chars...
18
+ # Remember to edit /etc/mysql/debian.cnf when changing the socket location.
19
+ [client]
20
+ port = 3306
21
+ socket = /var/run/mysqld/mysqld.sock
22
+
23
+ # Here is entries for some specific programs
24
+ # The following values assume you have at least 32M ram
25
+
26
+ # This was formally known as [safe_mysqld]. Both versions are currently parsed.
27
+ [mysqld_safe]
28
+ socket = /var/run/mysqld/mysqld.sock
29
+ nice = 0
30
+
31
+ [mysqld]
32
+ #
33
+ # * Basic Settings
34
+ #
35
+ user = mysql
36
+ pid-file = /var/run/mysqld/mysqld.pid
37
+ socket = /var/run/mysqld/mysqld.sock
38
+ port = 3306
39
+ # basedir = /usr
40
+ basedir = /opt/mysql/server-5.6
41
+ datadir = /var/lib/mysql
42
+ tmpdir = /tmp
43
+ # lc-messages-dir = /usr/share/mysql
44
+ lc-messages-dir = /opt/mysql/server-5.6/share
45
+ skip-external-locking
46
+ #
47
+ # Instead of skip-networking the default is now to listen only on
48
+ # localhost which is more compatible and is not less secure.
49
+ bind-address = 0.0.0.0
50
+ #
51
+ # * Fine Tuning
52
+ #
53
+ key_buffer = 16M
54
+ max_allowed_packet = 16M
55
+ thread_stack = 192K
56
+ thread_cache_size = 8
57
+ # This replaces the startup script and checks MyISAM tables if needed
58
+ # the first time they are touched
59
+ myisam-recover = BACKUP
60
+ #max_connections = 100
61
+ #table_cache = 64
62
+ #thread_concurrency = 10
63
+ #
64
+ # * Query Cache Configuration
65
+ #
66
+ query_cache_limit = 1M
67
+ query_cache_size = 16M
68
+ #
69
+ # * Logging and Replication
70
+ #
71
+ # Both location gets rotated by the cronjob.
72
+ # Be aware that this log type is a performance killer.
73
+ # As of 5.1 you can enable the log at runtime!
74
+ #general_log_file = /var/log/mysql/mysql.log
75
+ #general_log = 1
76
+ #
77
+ # Error log - should be very few entries.
78
+ #
79
+ log_error = /var/log/mysql/error.log
80
+ #
81
+ # Here you can see queries with especially long duration
82
+ #log_slow_queries = /var/log/mysql/mysql-slow.log
83
+ #long_query_time = 2
84
+ #log-queries-not-using-indexes
85
+ #
86
+ # The following can be used as easy to replay backup logs or for replication.
87
+ # note: if you are setting up a replication slave, see README.Debian about
88
+ # other settings you may need to change.
89
+ #server-id = 1
90
+ #log_bin = /var/log/mysql/mysql-bin.log
91
+ expire_logs_days = 10
92
+ max_binlog_size = 100M
93
+ #binlog_do_db = include_database_name
94
+ #binlog_ignore_db = include_database_name
95
+ #
96
+ # * InnoDB
97
+ #
98
+ # InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
99
+ # Read the manual for more InnoDB related options. There are many!
100
+ #
101
+ # * Security Features
102
+ #
103
+ # Read the manual, too, if you want chroot!
104
+ # chroot = /var/lib/mysql/
105
+ #
106
+ # For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
107
+ #
108
+ # ssl-ca=/etc/mysql/cacert.pem
109
+ # ssl-cert=/etc/mysql/server-cert.pem
110
+ # ssl-key=/etc/mysql/server-key.pem
111
+
112
+
113
+
114
+ [mysqldump]
115
+ quick
116
+ quote-names
117
+ max_allowed_packet = 16M
118
+
119
+ [mysql]
120
+ #no-auto-rehash # faster start of mysql but no tab completition
121
+
122
+ [isamchk]
123
+ key_buffer = 16M
124
+
125
+ #
126
+ # * IMPORTANT: Additional settings that can override those from this file!
127
+ # The files must end with '.cnf', otherwise they'll be ignored.
128
+ #
129
+ !includedir /etc/mysql/conf.d/
@@ -1,9 +1,5 @@
1
- # Elasticsearch
2
- # PostgreSQL 9.1 and 9.2
3
- #
4
- # VERSION 0.0.1
1
+ # Base openjdk image
5
2
 
6
3
  FROM fgrehm/ventriloquist-base
7
- MAINTAINER Fabio Rehm "fgrehm@gmail.com"
8
4
 
9
5
  RUN apt-get install -y openjdk-7-jre-headless && apt-get clean
@@ -1,20 +1,15 @@
1
1
  # PostgreSQL 9.1
2
- #
3
- # VERSION 0.0.1
4
2
 
5
3
  FROM fgrehm/ventriloquist-base
6
- MAINTAINER Fabio Rehm "fgrehm@gmail.com"
7
4
 
8
5
  # prevent apt from starting postgres right after the installation
9
- RUN echo "#!/bin/sh\nexit 101" > /usr/sbin/policy-rc.d; chmod +x /usr/sbin/policy-rc.d
10
-
11
- RUN apt-get install -y -q postgresql-9.1 postgresql-contrib-9.1 && apt-get clean
12
-
13
- # allow autostart again
14
- RUN rm /usr/sbin/policy-rc.d
6
+ RUN echo "#!/bin/sh\nexit 101" > /usr/sbin/policy-rc.d; chmod +x /usr/sbin/policy-rc.d && \
7
+ apt-get install -y -q postgresql-9.1 postgresql-contrib-9.1 && \
8
+ apt-get clean && \
9
+ rm /usr/sbin/policy-rc.d # allow autostart again
15
10
 
16
11
  ADD config /
17
12
  RUN /bin/prepare-postgres vagrant vagrant
18
13
 
19
- EXPOSE 5432:5432
14
+ EXPOSE 5432
20
15
  CMD ["/bin/start-postgres"]
@@ -1,15 +1,16 @@
1
1
  # PostgreSQL 9.2
2
- #
3
- # VERSION 0.0.1
4
2
 
5
3
  FROM fgrehm/ventriloquist-base
6
- MAINTAINER Fabio Rehm "fgrehm@gmail.com"
7
4
 
8
- RUN add-apt-repository ppa:pitti/postgresql && apt-get update
9
- RUN apt-get install -y postgresql-9.2 postgresql-contrib-9.2 && apt-get clean
5
+ RUN wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add - && \
6
+ echo "deb http://apt.postgresql.org/pub/repos/apt precise-pgdg main" > /etc/apt/sources.list.d/pgdg.list && \
7
+ apt-get update
8
+
9
+ RUN apt-get install -y postgresql-9.2 postgresql-contrib-9.2 && \
10
+ apt-get clean
10
11
 
11
12
  ADD config /
12
13
  RUN /bin/prepare-postgres vagrant vagrant
13
14
 
14
- EXPOSE 5432:5432
15
+ EXPOSE 5432
15
16
  CMD ["/bin/start-postgres"]
@@ -0,0 +1,16 @@
1
+ # PostgreSQL 9.3
2
+
3
+ FROM fgrehm/ventriloquist-base
4
+
5
+ RUN wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add - && \
6
+ echo "deb http://apt.postgresql.org/pub/repos/apt precise-pgdg main" > /etc/apt/sources.list.d/pgdg.list && \
7
+ apt-get update
8
+
9
+ RUN apt-get install -y postgresql-9.3 postgresql-contrib-9.3 && \
10
+ apt-get clean
11
+
12
+ ADD config /
13
+ RUN /bin/prepare-postgres vagrant vagrant
14
+
15
+ EXPOSE 5432
16
+ CMD ["/bin/start-postgres"]
@@ -0,0 +1,25 @@
1
+ #!/bin/sh
2
+
3
+ set -e
4
+
5
+ user=$1
6
+ password=$2
7
+
8
+ /etc/init.d/postgresql start
9
+
10
+ su postgres -c "createuser --superuser ${user}"
11
+ su postgres -c "createdb ${user}"
12
+ su postgres -c "psql -c \"ALTER ROLE ${user} PASSWORD '${password}'\""
13
+
14
+ # Based on https://gist.github.com/ffmike/877447
15
+ su postgres -c "psql postgres -c \"update pg_database set datallowconn = TRUE where datname = 'template0';\""
16
+ su postgres -c "psql template0 -c \"update pg_database set datistemplate = FALSE where datname = 'template1';\""
17
+ su postgres -c "psql template0 -c \"drop database template1;\""
18
+ su postgres -c "psql template0 -c \"create database template1 with template = template0 encoding = 'UTF8';\""
19
+ su postgres -c "psql template0 -c \"update pg_database set datistemplate = TRUE where datname = 'template1';\""
20
+ su postgres -c "psql template1 -c \"update pg_database set datallowconn = FALSE where datname = 'template0';\""
21
+
22
+ /etc/init.d/postgresql stop
23
+
24
+ # Avoid password for local connections
25
+ echo 'host all all all trust' >> /etc/postgresql/9.3/main/pg_hba.conf