Fix docker container for postgresql

Dominik Sander 9 years ago
parent
commit
56e4c8349b
3 changed files with 20 additions and 16 deletions
  1. 8 2
      docker/README.md
  2. 9 8
      docker/scripts/init
  3. 3 6
      docker/scripts/setup

+ 8 - 2
docker/README.md

@@ -67,11 +67,17 @@ To link to another mysql container, for example:
67 67
 
68 68
 To link to another container named 'postgres':
69 69
 
70
+    docker run --name huginn_postgres \
71
+        -e POSTGRES_PASSWORD=mysecretpassword \
72
+        -e POSTGRES_USER=huginn -d postgres
73
+    docker run -it --link huginn_postgres:postgres --rm postgres \
74
+        sh -c 'exec psql -h "$POSTGRES_PORT_5432_TCP_ADDR" -p "$POSTGRES_PORT_5432_TCP_PORT" -U huginn -c "create database huginn_development;"'
70 75
     docker run --rm --name huginn \
71 76
         --link huginn_postgres:postgres \
72 77
         -p 3000:3000 \
73
-        -e "HUGINN_DATABASE_USERNAME=huginn" \
74
-        -e "HUGINN_DATABASE_PASSWORD=pass@word" \
78
+        -e HUGINN_DATABASE_USERNAME=huginn \
79
+        -e HUGINN_DATABASE_PASSWORD=mysecretpassword \
80
+        -e HUGINN_DATABASE_ADAPTER=postgresql \
75 81
         cantino/huginn
76 82
 
77 83
 The `docker/` folder also has a `docker-compose.yml` that allows for a sample database formation with a data volume container:

+ 9 - 8
docker/scripts/init

@@ -18,10 +18,10 @@ if [ -n "${MYSQL_PORT_3306_TCP_ADDR}" ]; then
18 18
   HUGINN_DATABASE_ADAPTER=${HUGINN_DATABASE_ADAPTER:-mysql2}
19 19
   HUGINN_DATABASE_HOST=${HUGINN_DATABASE_HOST:-${MYSQL_PORT_3306_TCP_ADDR}}
20 20
   HUGINN_DATABASE_PORT=${HUGINN_DATABASE_PORT:-${MYSQL_PORT_3306_TCP_PORT}}
21
-elif [ -n "${POSTGRESQL_PORT_5432_TCP_ADDR}" ]; then
22
-  HUGINN_DATABASE_ADAPTER=${HUGINN_DATABASE_ADAPTER:-postgres}
23
-  HUGINN_DATABASE_HOST=${HUGINN_DATABASE_HOST:-${POSTGRESQL_PORT_5432_TCP_ADDR}}
24
-  HUGINN_DATABASE_PORT=${HUGINN_DATABASE_PORT:-${POSTGRESQL_PORT_5432_TCP_PORT}}
21
+elif [ -n "${POSTGRES_PORT_5432_TCP_ADDR}" ]; then
22
+  HUGINN_DATABASE_ADAPTER=${HUGINN_DATABASE_ADAPTER:-postgresql}
23
+  HUGINN_DATABASE_HOST=${HUGINN_DATABASE_HOST:-${POSTGRES_PORT_5432_TCP_ADDR}}
24
+  HUGINN_DATABASE_PORT=${HUGINN_DATABASE_PORT:-${POSTGRES_PORT_5432_TCP_PORT}}
25 25
 fi
26 26
 
27 27
 grep = /app/.env.example | sed -e 's/^#\([^ ]\)/\1/' | grep -v -e '^#' | cut -d= -f1 | \
@@ -31,6 +31,7 @@ grep = /app/.env.example | sed -e 's/^#\([^ ]\)/\1/' | grep -v -e '^#' | cut -d=
31 31
 
32 32
 chmod ugo+r /app/.env
33 33
 source /app/.env
34
+sudo -u huginn -H bundle install --deployment --without test
34 35
 
35 36
 DATABASE_HOST=${HUGINN_DATABASE_HOST:-${DATABASE_HOST:-localhost}}
36 37
 DATABASE_ENCODING=${HUGINN_DATABASE_ENCODING:-${DATABASE_ENCODING}}
@@ -39,8 +40,8 @@ USE_GRAPHVIZ_DOT=${HUGINN_USE_GRAPHVIZ_DOT:-${USE_GRAPHVIZ_DOT}}
39 40
 # use default port number if it is still not set
40 41
 case "${DATABASE_ADAPTER}" in
41 42
   mysql2) DATABASE_PORT=${DATABASE_PORT:-3306} ;;
42
-  postgres) DATABASE_PORT=${DATABASE_PORT:-5432} ;;
43
-  *) echo "Unsupported database adapter. Available adapters are mysql2, and postgres." && exit 1 ;;
43
+  postgresql) DATABASE_PORT=${DATABASE_PORT:-5432} ;;
44
+  *) echo "Unsupported database adapter. Available adapters are mysql2, and postgresql." && exit 1 ;;
44 45
 esac
45 46
 
46 47
 # initialize supervisord config
@@ -71,8 +72,8 @@ echo DATABASE_HOST=\${DATABASE_HOST}
71 72
 
72 73
 # start mysql server if \${DATABASE_HOST} is the .env.example default
73 74
 if [ "\${DATABASE_HOST}" = "your-domain-here.com" -o "\${DATABASE_HOST}" = "" ]; then
74
-  if [ "\${DATABASE_ADAPTER}" = "postgres" ]; then
75
-    echo "DATABASE_ADAPTER 'postgres' is not supported internally. Please provide DATABASE_HOST."
75
+  if [ "\${DATABASE_ADAPTER}" = "postgresql" ]; then
76
+    echo "DATABASE_ADAPTER 'postgresql' is not supported internally. Please provide DATABASE_HOST."
76 77
     exit 1
77 78
   fi
78 79
 

+ 3 - 6
docker/scripts/setup

@@ -1,11 +1,6 @@
1 1
 #!/bin/bash
2 2
 set -e
3 3
 
4
-# Initialize variables used by Huginn at installation time
5
-
6
-# Huginn is 12factor aware, embrace that fact for use inside of docker
7
-ON_HEROKU=${ON_HEROKU:-true}
8
-
9 4
 # Shallow clone the huginn project repo
10 5
 git clone --depth 1 https://github.com/cantino/huginn /app
11 6
 
@@ -29,7 +24,9 @@ if [ -d "/scripts/cache" ]; then
29 24
   mv /scripts/cache vendor/
30 25
   chown -R huginn:huginn vendor/cache
31 26
 fi
32
-sudo -u huginn -H bundle install --deployment --without test
27
+sudo -u huginn -H cp .env.example .env
28
+sudo -u huginn -H ON_HEROKU=true bundle install --deployment --without test
29
+sudo -u huginn -H rm .env
33 30
 
34 31
 # silence setlocale message (THANKS DEBIAN!)
35 32
 cat > /etc/default/locale <<EOF