From dff218541c1ff2b2412e0382fb5bfff3ee9544e0 Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Sat, 7 Feb 2026 13:35:54 +0330 Subject: [PATCH] dockerize the project --- Dockerfile | 69 ++++++++++++++-------------------------------- docker-compose.yml | 33 ++++++++++++++++++++++ 2 files changed, 53 insertions(+), 49 deletions(-) create mode 100644 docker-compose.yml diff --git a/Dockerfile b/Dockerfile index 54e60030..80fbb68c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,58 +1,29 @@ -FROM alpine:3.18 +FROM dunglas/frankenphp:1.11.1-php8.2 -RUN apk update && apk add --no-cache\ - bash \ - wget \ - curl \ - nano \ +RUN apt-get update \ + && apt-get install -y --no-install-recommends default-mysql-client \ unzip \ - libzip-dev \ - libxml2 \ - libxml2-dev \ - git \ - zlib-dev \ - libpng-dev \ - php81 \ - php81-common \ - php81-fpm \ - php81-pdo \ - php81-opcache \ - php81-soap \ - php81-zip \ - php81-phar \ - php81-iconv \ - php81-cli \ - php81-curl \ - php81-openssl \ - php81-mbstring \ - php81-tokenizer \ - php81-fileinfo \ - php81-json \ - php81-xml \ - php81-xmlwriter \ - php81-xmlreader \ - php81-simplexml \ - php81-dom \ - php81-pdo_mysql \ - php81-pdo_pgsql \ - php81-pdo_sqlite \ - php81-tokenizer \ - php81-pecl-redis \ - php81-gd + zip \ + && docker-php-ext-install pdo_mysql \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* -COPY --from=composer:latest /usr/bin/composer /usr/bin/composer +WORKDIR /var/www/rms -ENV COMPOSER_ALLOW_SUPERUSER=1 +# Copy Laravel application +COPY . . -ARG MOUNT_PATH +# Give permissions to storage and bootstrap/cache +RUN chmod -R 777 storage bootstrap/cache -COPY . /var/www/app - -WORKDIR /var/www/app +# Install Composer +COPY --from=docker.arvancloud.ir/composer:latest /usr/bin/composer /usr/bin/composer +# Optional: Run migrations/seeds if you want +# CMD php artisan migrate && php artisan db:seed && frankenphp run --config /etc/frankenphp/config.prod.yaml CMD composer install;\ php artisan key:generate;\ -# php artisan migrate ;\ -# php artisan db:seed;\ -# php artisan storege:link;\ - php artisan serve --host=0.0.0.0 \ No newline at end of file + php artisan migrate;\ + php artisan db:seed;\ + cd public;\ + frankenphp php-server \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..85c90431 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,33 @@ +services: + mariadb: + image: mariadb:10.11.8 + container_name: rms-mariadb + ports: + - "3307:3306" + environment: + MARIADB_DATABASE: ${MARIADB_DATABASE} + MARIADB_USER: ${MARIADB_USER} + MARIADB_PASSWORD: ${MARIADB_PASSWORD} + MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD} + volumes: + - ./2025-11-30:/var/lib/mysql + networks: + - rms + + backend: + build: + context: . + dockerfile: Dockerfile + container_name: rms + ports: + - "8003:80" + volumes: + - ./:/var/www/rms + depends_on: + - mariadb + networks: + - rms + +networks: + rms: + driver: bridge \ No newline at end of file