diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..d2e4f60 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,14 @@ +FROM php:8.1-fpm-alpine + +RUN docker-php-ext-install pdo pdo_mysql sockets +RUN curl -sS https://getcomposer.org/installer | php -- \ + --install-dir=/usr/local/bin --filename=composer + +COPY --from=composer:latest /usr/bin/composer /usr/bin/composer + +WORKDIR /app +COPY . . +RUN composer install && \ + cp .env.example .env + +ENTRYPOINT ["/app/run.sh"] diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php index ca027ea..3ee2b67 100644 --- a/app/Providers/RouteServiceProvider.php +++ b/app/Providers/RouteServiceProvider.php @@ -35,6 +35,9 @@ class RouteServiceProvider extends ServiceProvider */ public function boot() { + if (config('app.env') === 'production') { + \Illuminate\Support\Facades\URL::forceScheme('https'); + } $this->configureRateLimiting(); $this->routes(function () { diff --git a/run.sh b/run.sh new file mode 100755 index 0000000..98daf76 --- /dev/null +++ b/run.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +# TODO: global env vars aren't used. +cat > /app/.env.production << EOF +APP_NAME=MyIdlers +APP_DEBUG=true +APP_KEY= + +DB_CONNECTION=mysql +DB_HOST=${DB_HOST} +DB_DATABASE=${DB_DATABASE} +DB_USERNAME=${DB_USERNAME} +DB_PASSWORD=${DB_PASSWORD} +APP_URL=${APP_URL} +ASSET_URL=${ASSET_URL} +EOF + +# TODO: only run this once +php artisan key:generate +php artisan migrate:fresh --seed --force +php artisan serve --host=0.0.0.0 --port=8000 --env=production