diff --git a/backend/Dockerfile b/backend/Dockerfile index 4c047139..7a70c044 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,21 +1,6 @@ -FROM docker.arvancloud.ir/composer:latest AS builder - -WORKDIR /app - -COPY composer.json composer.lock ./ - -RUN composer install \ - --no-dev \ - --no-scripts \ - --no-autoloader \ - --prefer-dist - -COPY . . - -RUN composer dump-autoload --optimize --classmap-authoritative - -FROM php:8.5.3-fpm-alpine3.23 AS application +FROM php:8.5.3-fpm-alpine3.23 +# Install common PHP extension dependencies RUN apk update && apk add --no-cache \ bash \ curl \ @@ -29,13 +14,23 @@ RUN apk update && apk add --no-cache \ libzip-dev \ libpq-dev \ && docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp \ - && docker-php-ext-install pdo_pgsql pdo_mysql gd zip + && docker-php-ext-install pdo_pgsql gd zip +# Set the working directory WORKDIR /var/www/payment -COPY --from=builder /app /var/www/payment +COPY . . -RUN chown -R www-data:www-data /var/www/payment \ - && chmod -R 665 storage bootstrap/cache +RUN chmod -R 665 /var/www/payment/storage /var/www/payment/bootstrap/cache -CMD ["php-fpm"] +# Install Composer +COPY --from=composer:latest /usr/bin/composer /usr/bin/composer +ENV COMPOSER_ALLOW_SUPERUSER=1 + +# Default command +CMD composer install ;\ + composer dump-autoload --optimize --classmap-authoritative ;\ + php artisan key:generate ;\ + php artisan migrate ;\ + php artisan db:seed ;\ + php-fpm diff --git a/backend/Dockerfile.production b/backend/Dockerfile.production new file mode 100644 index 00000000..e2a7d0cf --- /dev/null +++ b/backend/Dockerfile.production @@ -0,0 +1,41 @@ +FROM docker.arvancloud.ir/composer:latest AS builder + +WORKDIR /app + +COPY composer.json composer.lock ./ + +RUN composer install \ + --no-dev \ + --no-scripts \ + --no-autoloader \ + --prefer-dist + +COPY . . + +RUN composer dump-autoload --optimize --classmap-authoritative + +FROM php:8.5.3-fpm-alpine3.23 AS application + +RUN apk update && apk add --no-cache \ + bash \ + curl \ + libpng \ + libpng-dev \ + libjpeg-turbo-dev \ + freetype-dev \ + libwebp-dev \ + libxml2-dev \ + unzip \ + libzip-dev \ + libpq-dev \ + && docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp \ + && docker-php-ext-install pdo_pgsql gd zip + +WORKDIR /var/www/payment + +COPY --from=builder /app /var/www/payment + +RUN chown -R www-data:www-data /var/www/payment \ + && chmod -R 665 storage bootstrap/cache + +CMD ["php-fpm"] diff --git a/docker-compose.yml b/docker-compose.yml index 3feb97d6..899c16e5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,6 @@ services: nginx: - image: docker.arvancloud.ir/nginx:stable-alpine3.23-perl + image: nginx:stable-alpine3.23-perl container_name: nginx restart: unless-stopped ports: @@ -12,7 +12,7 @@ services: - payment redis: - image: docker.arvancloud.ir/redis:8.6.0-alpine3.23 + image: redis:8.6.0-alpine3.23 container_name: redis restart: unless-stopped tty: true