From b74def256c2735d61ea791c22c5e663593e9ea67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anna-Sara=20S=C3=A9lea?= Date: Wed, 26 Nov 2025 20:41:58 +0100 Subject: [PATCH] Updated docker setup --- docker-compose.dev.yml | 54 +++++++++++++++++++++++++++++++++++++++++ docker-compose.yml | 9 +++---- docker/dev/Dockerfile | 17 +++++++++++++ docker/php/Dockerfile | 18 ++++++-------- docker/scripts/start.sh | 6 ++--- package-lock.json | 2 +- 6 files changed, 87 insertions(+), 19 deletions(-) create mode 100644 docker-compose.dev.yml create mode 100644 docker/dev/Dockerfile diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml new file mode 100644 index 0000000..e73f7d0 --- /dev/null +++ b/docker-compose.dev.yml @@ -0,0 +1,54 @@ +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 c6b22d8..2aff417 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,8 +7,6 @@ services: dockerfile: docker/php/Dockerfile depends_on: - db - volumes: - - .:/var/www/html ports: - "8080:80" environment: @@ -27,7 +25,7 @@ services: MYSQL_PASSWORD: ${DB_PASSWORD} MYSQL_ALLOW_EMPTY_PASSWORD: "yes" volumes: - - "appdb:/var/lib/mysql" + - "mysql:/var/lib/mysql" networks: - app queue: @@ -35,8 +33,9 @@ services: container_name: laravel-queue depends_on: - web + - db volumes: - - .:/var/www/html + - ./:/var/www/html networks: - app environment: @@ -49,5 +48,5 @@ networks: app: driver: bridge volumes: - appdb: + mysql: driver: local \ No newline at end of file diff --git a/docker/dev/Dockerfile b/docker/dev/Dockerfile new file mode 100644 index 0000000..5f70a5c --- /dev/null +++ b/docker/dev/Dockerfile @@ -0,0 +1,17 @@ +FROM php:8.2-apache +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 +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 Composer +RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer + +ENV APACHE_DOCUMENT_ROOT /var/www/html/public +RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf +RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf \ No newline at end of file diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile index bae1a86..c4ed7ae 100644 --- a/docker/php/Dockerfile +++ b/docker/php/Dockerfile @@ -8,37 +8,35 @@ COPY . /var/www/html COPY docker/apache/default.conf /etc/apache2/sites-available/000-default.conf COPY docker/scripts/start.sh /usr/local/bin/start -RUN usermod -u 1000 www-data 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 + && 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 and build tools -RUN apt-get update && apt-get install -y --no-install-recommends \ - curl \ - nodejs \ - npm \ - && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* - # 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 -#EXPOSE 80 CMD ["/usr/local/bin/start"] diff --git a/docker/scripts/start.sh b/docker/scripts/start.sh index cb736f6..f02a1cd 100644 --- a/docker/scripts/start.sh +++ b/docker/scripts/start.sh @@ -19,9 +19,9 @@ if [ -f "/var/www/html/.env" ]; then fi fi -if [ "${RUN_MIGRATIONS:-false}" = "true" ]; then - php artisan migrate --force -fi +#if [ "${RUN_MIGRATIONS:-false}" = "true" ]; then + #php artisan migrate --force +#fi if [ "$env" != "local" ]; then echo "Caching configuration..." diff --git a/package-lock.json b/package-lock.json index 472fef9..104b4ee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "vbytes_hub", + "name": "vbytes_lan", "lockfileVersion": 3, "requires": true, "packages": {