diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..fec8583 --- /dev/null +++ b/.env.example @@ -0,0 +1,6 @@ +PROJECT_NAME="" +PROJECT_PATH="./laravel" + +POSTGRES_USER="" +POSTGRES_DB="" +POSTGRES_PASSWORD="" \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d3e701e --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.env +.idea +data \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..73eb7f6 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,28 @@ +services: + postgres: + image: postgres:17-alpine3.21 + container_name: ${PROJECT_NAME}-pgsql + ports: + - "8090:5432" + environment: + POSTGRES_DB: ${POSTGRES_DB} + POSTGRES_USER: ${POSTGRES_USER} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + volumes: + - ./data:/var/lib/postgresql/data + +# redis: +# image: redis:7-alpine3.21 +# container_name: redis + + laravel: + build: + context: ${PROJECT_PATH} + dockerfile: Dockerfile + container_name: ${PROJECT_NAME} + ports: + - "8080:8000" + volumes: + - ./laravel:/var/www/${PROJECT_NAME} + depends_on: + - postgres diff --git a/laravel/Dockerfile b/laravel/Dockerfile new file mode 100644 index 0000000..56c9274 --- /dev/null +++ b/laravel/Dockerfile @@ -0,0 +1,57 @@ +FROM alpine:3.21 + +LABEL authors="amirghasempoor" + +RUN apk update && apk add --no-cache\ + bash \ + wget \ + curl \ + nano \ + unzip \ + libzip-dev \ + libxml2 \ + libxml2-dev \ + git \ + zlib-dev \ + libpng-dev \ + php83 \ + php83-common \ + php83-fpm \ + php83-pdo \ + php83-opcache \ + php83-soap \ + php83-zip \ + php83-phar \ + php83-iconv \ + php83-cli \ + php83-curl \ + php83-openssl \ + php83-mbstring \ + php83-tokenizer \ + php83-fileinfo \ + php83-json \ + php83-xml \ + php83-xmlwriter \ + php83-simplexml \ + php83-dom \ + php83-pdo_mysql \ + php83-pdo_pgsql \ + php83-pdo_sqlite \ + php83-tokenizer \ + php83-pecl-redis + +COPY --from=composer:latest /usr/bin/composer /usr/bin/composer + +ENV COMPOSER_ALLOW_SUPERUSER=1 + +ARG MOUNT_PATH + +WORKDIR /var/www/netflix +COPY . . + +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