Fix production Docker runtime for server deployment

هذا الالتزام موجود في:
Abdul Kareem
2026-02-18 13:48:50 +03:00
الأصل dcbb0548e8
التزام 1ae07994cf
4 ملفات معدلة مع 27 إضافات و26 حذوفات

عرض الملف

@@ -1,29 +1,36 @@
FROM php:8.3-apache
FROM php:8.3-fpm
RUN apt-get update && apt-get install -y \
RUN apt-get update && apt-get install -y --no-install-recommends \
libpq-dev \
libicu-dev \
libpng-dev \
libzip-dev \
libjpeg62-turbo-dev \
libfreetype6-dev \
unzip \
git \
curl \
zip
zip \
&& rm -rf /var/lib/apt/lists/*
RUN docker-php-ext-install pdo_pgsql pgsql intl gd zip
RUN docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install -j"$(nproc)" pdo_pgsql pgsql intl gd zip
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
WORKDIR /var/www/html
WORKDIR /var/www
COPY composer.json composer.lock ./
RUN composer install --no-dev --prefer-dist --no-interaction --no-scripts --optimize-autoloader
COPY . .
RUN composer install --no-dev --optimize-autoloader
RUN chown -R www-data:www-data storage bootstrap/cache \
&& chmod -R ug+rw storage bootstrap/cache \
&& chmod +x docker/entrypoint.sh
RUN chown -R www-data:www-data storage bootstrap/cache
ENTRYPOINT ["docker/entrypoint.sh"]
RUN a2enmod rewrite
EXPOSE 9000
EXPOSE 80
CMD ["apache2-foreground"]
CMD ["php-fpm"]

عرض الملف

@@ -11,17 +11,9 @@ services:
APP_ENV: production
APP_DEBUG: "false"
APP_URL: ${APP_URL:-http://127.0.0.1:8000}
DB_CONNECTION: pgsql
DB_HOST: db
DB_PORT: 5432
DB_DATABASE: ${DB_DATABASE:-tabeley_db}
DB_USERNAME: ${DB_USERNAME:-postgres}
DB_PASSWORD: ${DB_PASSWORD:-secret}
RUN_MIGRATIONS: "true"
depends_on:
- db
volumes:
- storage_data:/var/www/html/storage
- storage_data:/var/www/storage
nginx:
image: nginx:1.27-alpine
@@ -32,7 +24,7 @@ services:
ports:
- "8000:80"
volumes:
- ./public:/var/www/html/public:ro
- ./public:/var/www/public:ro
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
db:

عرض الملف

@@ -33,7 +33,9 @@ set_env APP_DEBUG "${APP_DEBUG}"
set_env APP_URL "${APP_URL}"
php artisan config:clear || true
if ! grep -q "^APP_KEY=base64:" .env; then
php artisan key:generate --force --no-interaction || true
fi
php artisan storage:link || true
if [ "${RUN_MIGRATIONS}" = "true" ]; then

عرض الملف

@@ -1,7 +1,7 @@
server {
listen 80;
server_name _;
root /var/www/html/public;
root /var/www/public;
index index.php index.html;
client_max_body_size 20M;
@@ -14,8 +14,8 @@ server {
include fastcgi_params;
fastcgi_pass app:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html/public$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT /var/www/html/public;
fastcgi_param SCRIPT_FILENAME /var/www/public$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT /var/www/public;
fastcgi_read_timeout 300;
}