diff --git a/.env.example b/.env.example index 0348596..92abc36 100644 --- a/.env.example +++ b/.env.example @@ -27,7 +27,7 @@ DB_DATABASE=tabeley_db DB_USERNAME=postgres DB_PASSWORD=secret -SESSION_DRIVER=database +SESSION_DRIVER=file SESSION_LIFETIME=120 SESSION_ENCRYPT=false SESSION_PATH=/ @@ -35,9 +35,9 @@ SESSION_DOMAIN=null BROADCAST_CONNECTION=log FILESYSTEM_DISK=local -QUEUE_CONNECTION=database +QUEUE_CONNECTION=sync -CACHE_STORE=database +CACHE_STORE=file # CACHE_PREFIX= MEMCACHED_HOST=127.0.0.1 diff --git a/Dockerfile b/Dockerfile index 63072f1..eb16007 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,9 +15,12 @@ COPY --from=composer:latest /usr/bin/composer /usr/bin/composer WORKDIR /var/www COPY . . +COPY docker/entrypoint.sh /usr/local/bin/entrypoint.sh +RUN chmod +x /usr/local/bin/entrypoint.sh RUN composer install --no-dev --optimize-autoloader EXPOSE 80 +ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] CMD ["php", "-S", "0.0.0.0:80", "-t", "public"] diff --git a/config/database.php b/config/database.php index 60224cb..c360db4 100644 --- a/config/database.php +++ b/config/database.php @@ -85,7 +85,7 @@ return [ 'pgsql' => [ 'driver' => 'pgsql', - 'url' => env('DB_URL'), + 'url' => env('DB_URL', env('DATABASE_URL')), 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '5432'), 'database' => env('DB_DATABASE', 'laravel'), diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index 6a76892..b672817 100644 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -1,12 +1,38 @@ #!/usr/bin/env sh set -e -cd /var/www/html +cd /var/www if [ ! -f .env ]; then cp .env.example .env fi +# Update .env keys from runtime environment variables when provided. +set_env() { + key="$1" + value="$2" + if [ -n "$value" ]; then + if grep -q "^${key}=" .env; then + sed -i "s|^${key}=.*|${key}=${value}|" .env + else + echo "${key}=${value}" >> .env + fi + fi +} + +set_env DB_CONNECTION "${DB_CONNECTION}" +set_env DB_HOST "${DB_HOST}" +set_env DB_PORT "${DB_PORT}" +set_env DB_DATABASE "${DB_DATABASE}" +set_env DB_USERNAME "${DB_USERNAME}" +set_env DB_PASSWORD "${DB_PASSWORD}" +set_env DB_URL "${DB_URL}" +set_env DATABASE_URL "${DATABASE_URL}" +set_env APP_ENV "${APP_ENV}" +set_env APP_DEBUG "${APP_DEBUG}" +set_env APP_URL "${APP_URL}" + +php artisan config:clear || true php artisan key:generate --force --no-interaction || true php artisan storage:link || true