main: 初始化项目基础结构
- 添加项目必要的配置文件(例如 `.env.example`、`.gitignore` 等) - 配置 Docker 环境相关文件(如 `.dockerignore`) - 引入默认的 `composer.json` 依赖项和脚本配置 - 添加基础数据库迁移文件 - 配置 Laravel 默认的资源文件夹和初始内容
This commit is contained in:
26
docker/app/Dockerfile
Normal file
26
docker/app/Dockerfile
Normal file
@@ -0,0 +1,26 @@
|
||||
FROM dunglas/frankenphp:1-php8.3
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# System packages and PHP extensions required by Laravel/Octane
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
git \
|
||||
unzip \
|
||||
libzip-dev \
|
||||
libpq-dev \
|
||||
zlib1g-dev \
|
||||
&& docker-php-ext-install \
|
||||
pcntl \
|
||||
zip \
|
||||
pdo_mysql \
|
||||
pdo_pgsql \
|
||||
&& pecl install redis \
|
||||
&& docker-php-ext-enable redis \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Composer for dependency management
|
||||
COPY --from=composer:2 /usr/bin/composer /usr/local/bin/composer
|
||||
|
||||
# Default runtime command uses Octane (overridden by docker-compose entrypoint)
|
||||
CMD ["php", "artisan", "octane:start", "--server=frankenphp", "--host=0.0.0.0", "--port=8000"]
|
||||
18
docker/app/entrypoint.sh
Executable file
18
docker/app/entrypoint.sh
Executable file
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env sh
|
||||
set -e
|
||||
|
||||
cd /app
|
||||
|
||||
if [ ! -f ".env" ] && [ -f ".env.example" ]; then
|
||||
cp .env.example .env
|
||||
fi
|
||||
|
||||
if [ ! -d "vendor" ]; then
|
||||
composer install
|
||||
fi
|
||||
|
||||
if ! grep -q "^APP_KEY=" .env 2>/dev/null || grep -q "^APP_KEY=$" .env 2>/dev/null; then
|
||||
php artisan key:generate --force
|
||||
fi
|
||||
|
||||
exec php artisan octane:start --server=frankenphp --host=0.0.0.0 --port="${PORT:-8000}" --watch
|
||||
Reference in New Issue
Block a user