Merge pull request 'dockerize the project' (#1) from feature/dockerize into develop

Reviewed-on: http://git.witel.ir/RMS/backend/pulls/1
This commit was merged in pull request #1.
This commit is contained in:
2026-02-07 10:07:34 +00:00
2 changed files with 53 additions and 49 deletions

View File

@@ -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
php artisan migrate;\
php artisan db:seed;\
cd public;\
frankenphp php-server

33
docker-compose.yml Normal file
View File

@@ -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