ventriloquist 0.3.2 → 0.4.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 (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