|
3 | 3 |
|
4 | 4 | echoerr() { echo "$@" 1>&2; }
|
5 | 5 |
|
| 6 | +check_vars_exist() { |
| 7 | + var_names=("$@") |
| 8 | + |
| 9 | + for var_name in "${var_names[@]}"; do |
| 10 | + if [ -z "${!var_name}" ]; then |
| 11 | + echoerr "error: missing ${var_name} environment variable" |
| 12 | + exit 1 |
| 13 | + fi |
| 14 | + done |
| 15 | +} |
| 16 | + |
6 | 17 | # Split out host and port from DB_HOST env variable
|
7 | 18 | IFS=":" read -r DB_HOST_NAME DB_PORT <<< "$DB_HOST"
|
8 | 19 | DB_PORT=${DB_PORT:-3306}
|
9 | 20 |
|
10 |
| -if [ ! -f ".env" ]; then |
11 |
| - if [[ "${DB_HOST}" ]]; then |
12 |
| - cat > ".env" <<EOF |
13 |
| - # Environment |
14 |
| - APP_ENV=production |
15 |
| - APP_DEBUG=${APP_DEBUG:-false} |
16 |
| - APP_KEY=${APP_KEY:-SomeRandomStringWith32Characters} |
17 |
| -
|
18 |
| - # The below url has to be set if using social auth options |
19 |
| - # or if you are not using BookStack at the root path of your domain. |
20 |
| - APP_URL=${APP_URL:-null} |
21 |
| -
|
22 |
| - # Database details |
23 |
| - DB_HOST=${DB_HOST:-localhost} |
24 |
| - DB_DATABASE=${DB_DATABASE:-bookstack} |
25 |
| - DB_USERNAME=${DB_USERNAME:-bookstack} |
26 |
| - DB_PASSWORD=${DB_PASSWORD:-password} |
27 |
| -
|
28 |
| - # Cache and session |
29 |
| - CACHE_DRIVER=file |
30 |
| - SESSION_DRIVER=file |
31 |
| - # If using Memcached, comment the above and uncomment these |
32 |
| - #CACHE_DRIVER=memcached |
33 |
| - #SESSION_DRIVER=memcached |
34 |
| - QUEUE_DRIVER=sync |
35 |
| -
|
36 |
| - # Memcached settings |
37 |
| - # If using a UNIX socket path for the host, set the port to 0 |
38 |
| - # This follows the following format: HOST:PORT:WEIGHT |
39 |
| - # For multiple servers separate with a comma |
40 |
| - MEMCACHED_SERVERS=127.0.0.1:11211:100 |
41 |
| -
|
42 |
| - # Storage |
43 |
| - STORAGE_TYPE=${STORAGE_TYPE:-local} |
44 |
| - # Amazon S3 Config |
45 |
| - STORAGE_S3_KEY=${STORAGE_S3_KEY:-false} |
46 |
| - STORAGE_S3_SECRET=${STORAGE_S3_SECRET:-false} |
47 |
| - STORAGE_S3_REGION=${STORAGE_S3_REGION:-false} |
48 |
| - STORAGE_S3_BUCKET=${STORAGE_S3_BUCKET:-false} |
49 |
| - # Storage URL |
50 |
| - # Used to prefix image urls for when using custom domains/cdns |
51 |
| - STORAGE_URL=${STORAGE_URL:-false} |
52 |
| -
|
53 |
| - # General auth |
54 |
| - AUTH_METHOD=${AUTH_METHOD:-standard} |
55 |
| -
|
56 |
| - # Social Authentication information. Defaults as off. |
57 |
| - GITHUB_APP_ID=${GITHUB_APP_ID:-false} |
58 |
| - GITHUB_APP_SECRET=${GITHUB_APP_SECRET:-false} |
59 |
| - GOOGLE_APP_ID=${GOOGLE_APP_ID:-false} |
60 |
| - GOOGLE_APP_SECRET=${GOOGLE_APP_SECRET:-false} |
61 |
| -
|
62 |
| - # External services such as Gravatar |
63 |
| - DISABLE_EXTERNAL_SERVICES=${DISABLE_EXTERNAL_SERVICES:-false} |
64 |
| -
|
65 |
| - # LDAP Settings |
66 |
| - LDAP_SERVER=${LDAP_SERVER:-false} |
67 |
| - LDAP_BASE_DN=${LDAP_BASE_DN:-false} |
68 |
| - LDAP_DN=${LDAP_DN:-false} |
69 |
| - LDAP_PASS=${LDAP_PASS:-false} |
70 |
| - LDAP_USER_FILTER=${LDAP_USER_FILTER:-false} |
71 |
| - LDAP_VERSION=${LDAP_VERSION:-false} |
72 |
| - LDAP_ID_ATTRIBUTE=${LDAP_ID_ATTRIBUTE:-false} |
73 |
| - LDAP_TLS_INSECURE=${LDAP_TLS_INSECURE:-false} |
74 |
| - LDAP_DISPLAY_NAME_ATTRIBUTE=${LDAP_DISPLAY_NAME_ATTRIBUTE:-false} |
75 |
| -
|
76 |
| - # Mail settings |
77 |
| - MAIL_DRIVER=${MAIL_DRIVER:-smtp} |
78 |
| - MAIL_HOST=${MAIL_HOST:-localhost} |
79 |
| - MAIL_PORT=${MAIL_PORT:-1025} |
80 |
| - MAIL_USERNAME=${MAIL_USERNAME:-null} |
81 |
| - MAIL_PASSWORD=${MAIL_PASSWORD:-null} |
82 |
| - MAIL_ENCRYPTION=${MAIL_ENCRYPTION:-null} |
83 |
| - # URL used for social login redirects, NO TRAILING SLASH |
84 |
| -EOF |
85 |
| - else |
86 |
| - echo >&2 'error: missing DB_HOST environment variable' |
87 |
| - exit 1 |
88 |
| - fi |
| 21 | +# Ensure these is no local .env file |
| 22 | +if [ -f ".env" ]; then |
| 23 | + mv .env .env.bak |
| 24 | + echoerr ".env file detected - moved to .env.bak" |
| 25 | + echoerr "Please update your configuration to use environment variables in the container!" |
89 | 26 | fi
|
90 | 27 |
|
| 28 | +# Check a number of essential variables are set |
| 29 | +check_vars_exist \ |
| 30 | + APP_KEY \ |
| 31 | + APP_URL \ |
| 32 | + DB_DATABASE \ |
| 33 | + DB_HOST \ |
| 34 | + DB_PASSWORD \ |
| 35 | + DB_PORT \ |
| 36 | + DB_USERNAME |
| 37 | + |
91 | 38 | echoerr "wait-for-db: waiting for ${DB_HOST_NAME}:${DB_PORT}"
|
92 | 39 |
|
93 | 40 | timeout 15 bash <<EOT
|
|
105 | 52 | echoerr "wait-for-db: timeout out after 15 seconds waiting for ${DB_HOST_NAME}:${DB_PORT}"
|
106 | 53 | fi
|
107 | 54 |
|
108 |
| -echo "Generating Key..." |
109 |
| -php artisan key:generate --show |
110 |
| - |
111 | 55 | echo "Starting Migration..."
|
112 | 56 | php artisan migrate --force
|
113 | 57 |
|
|
0 commit comments