diff --git a/docker/dev/Dockerfile b/Dockerfile similarity index 89% rename from docker/dev/Dockerfile rename to Dockerfile index 5f70a5c..ab33816 100644 --- a/docker/dev/Dockerfile +++ b/Dockerfile @@ -1,8 +1,8 @@ -FROM php:8.2-apache +FROM php:8.2-apache-buster RUN usermod -u 1000 www-data RUN a2enmod rewrite RUN apt-get update \ - && apt-get install -y gnupg2 zlib1g-dev libzip-dev zlib1g-dev libpng-dev libfreetype6-dev libjpeg62-turbo-dev libmcrypt-dev libxml2-dev libicu-dev + && apt-get install -y gnupg2 zlib1g-dev libzip-dev zlib1g-dev libpng-dev libfreetype6-dev libjpeg62-turbo-dev libmcrypt-dev libxml2-dev RUN docker-php-ext-install zip mysqli pdo pdo_mysql && docker-php-ext-enable mysqli pdo pdo_mysql sodium RUN docker-php-ext-configure gd RUN docker-php-ext-install gd diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml deleted file mode 100644 index e73f7d0..0000000 --- a/docker-compose.dev.yml +++ /dev/null @@ -1,54 +0,0 @@ -services: - web: - image: laravel-www - container_name: laravel-www - build: - context: . - dockerfile: docker/dev/Dockerfile - volumes: - - .:/var/www/html - depends_on: - - db - ports: - - "8080:80" - environment: - CONTAINER_ROLE: app - networks: - - app - db: - container_name: laravel-mysql - image: "mariadb" - ports: - - "3306:3306" - environment: - MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} - MYSQL_DATABASE: ${DB_DATABASE} - MYSQL_USER: ${DB_USERNAME} - MYSQL_PASSWORD: ${DB_PASSWORD} - MYSQL_ALLOW_EMPTY_PASSWORD: "yes" - volumes: - - "mysql:/var/lib/mysql" - networks: - - app - queue: - image: laravel-www - container_name: laravel-queue - depends_on: - - web - - db - volumes: - - ./:/var/www/html - networks: - - app - environment: - APP_ENV: ${APP_ENV} - CONTAINER_ROLE: queue - CACHE_STORE: ${CACHE_STORE} - SESSION_DRIVER: ${SESSION_DRIVER} - QUEUE_CONNECTION: ${QUEUE_CONNECTION} -networks: - app: - driver: bridge -volumes: - mysql: - driver: local \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 2aff417..7df11af 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,52 +1,31 @@ services: - web: - image: laravel-www - container_name: laravel-www - build: - context: . - dockerfile: docker/php/Dockerfile - depends_on: - - db + api: + image: php + build: . + volumes: + - .:/var/www/html ports: - "8080:80" - environment: - CONTAINER_ROLE: app networks: - app db: - container_name: laravel-mysql image: "mariadb" ports: - "3306:3306" environment: - MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} - MYSQL_DATABASE: ${DB_DATABASE} - MYSQL_USER: ${DB_USERNAME} - MYSQL_PASSWORD: ${DB_PASSWORD} + MYSQL_ROOT_PASSWORD: "password" + MYSQL_DATABASE: "vbytes_lan" + MYSQL_USER: "root" + MYSQL_PASSWORD: "password" MYSQL_ALLOW_EMPTY_PASSWORD: "yes" volumes: - - "mysql:/var/lib/mysql" + - "appdb:/var/lib/mysql" networks: - - app - queue: - image: laravel-www - container_name: laravel-queue - depends_on: - - web - - db - volumes: - - ./:/var/www/html - networks: - - app - environment: - APP_ENV: ${APP_ENV} - CONTAINER_ROLE: queue - CACHE_STORE: ${CACHE_STORE} - SESSION_DRIVER: ${SESSION_DRIVER} - QUEUE_CONNECTION: ${QUEUE_CONNECTION} + - app networks: app: driver: bridge volumes: - mysql: - driver: local \ No newline at end of file + appdb: + driver: local + diff --git a/docker/apache/default.conf b/docker/apache/default.conf deleted file mode 100644 index 829b473..0000000 --- a/docker/apache/default.conf +++ /dev/null @@ -1,11 +0,0 @@ - - DocumentRoot /var/www/html/public - - - AllowOverride all - Require all granted - - - ErrorLog ${APACHE_LOG_DIR}/error.log - CustomLog ${APACHE_LOG_DIR}/access.log combined - \ No newline at end of file diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile deleted file mode 100644 index c4ed7ae..0000000 --- a/docker/php/Dockerfile +++ /dev/null @@ -1,42 +0,0 @@ -FROM php:8.4-apache - - -## Copy the entire Laravel application code into the container -COPY . /var/www/html - -# Apache vhost & entry script -COPY docker/apache/default.conf /etc/apache2/sites-available/000-default.conf -COPY docker/scripts/start.sh /usr/local/bin/start - - -RUN chown -R www-data:www-data /var/www/html \ - && chmod u+x /usr/local/bin/start \ - && a2enmod rewrite - -RUN apt-get update \ - && apt-get install -y gnupg2 zlib1g-dev libzip-dev zlib1g-dev libicu-dev libpng-dev libfreetype6-dev libjpeg62-turbo-dev libmcrypt-dev libxml2-dev curl unzip -RUN docker-php-ext-install zip mysqli pdo pdo_mysql && docker-php-ext-enable mysqli pdo pdo_mysql sodium -RUN docker-php-ext-configure gd -RUN docker-php-ext-install gd -RUN docker-php-ext-configure intl -RUN docker-php-ext-install intl - -# Install Node.js and build tools -RUN apt-get update && apt-get install -y --no-install-recommends \ - nodejs \ - npm \ - && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* - -# Add Composer -RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ - && composer install --no-interaction --no-progress - -# Install Node.js dependencies and build assets -RUN npm install && npm run build - -RUN chown -R www-data:www-data /var/www/html - - -WORKDIR /var/www/html - -CMD ["/usr/local/bin/start"] diff --git a/docker/scripts/start.sh b/docker/scripts/start.sh deleted file mode 100644 index f02a1cd..0000000 --- a/docker/scripts/start.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/usr/bin/env bash - -set -e - -role=${CONTAINER_ROLE:-app} -env=${APP_ENV:-production} - -chown -R www-data:www-data /var/www/html -chmod -R 775 /var/www/html/storage -chmod -R 775 /var/www/html/bootstrap/cache - -if [ ! -d "/var/www/html/vendor" ]; then - composer install --no-interaction --no-progress -fi - -if [ -f "/var/www/html/.env" ]; then - if ! grep -q "^APP_KEY=" .env || grep -q "^APP_KEY=$" .env; then - php artisan key:generate - fi -fi - -#if [ "${RUN_MIGRATIONS:-false}" = "true" ]; then - #php artisan migrate --force -#fi - -if [ "$env" != "local" ]; then - echo "Caching configuration..." - (cd /var/www/html && - php artisan optimize && - php artisan filament:optimize && - php artisan config:cache && - php artisan route:cache && - php artisan view:cache) -fi - - -if [ "$role" = "app" ]; then - - exec apache2-foreground - -elif [ "$role" = "queue" ]; then - - echo "Running the queue..." - php /var/www/html/artisan queue:work --verbose --tries=3 --timeout=90 - -elif [ "$role" = "scheduler" ]; then - - echo "Scheduler role" - exit 1 - -else - echo "Could not match the container role \"$role\"" - exit 1 -fi \ No newline at end of file