diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..ab33816 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +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 +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-compose.yml b/docker-compose.yml index f8c5f02..25ca247 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,112 +1,32 @@ +version: '2.2' services: - laravel.test: - build: - context: './vendor/laravel/sail/runtimes/8.4' - dockerfile: Dockerfile - args: - WWWGROUP: '${WWWGROUP}' - image: 'sail-8.4/app' - extra_hosts: - - 'host.docker.internal:host-gateway' - ports: - - '${APP_PORT:-80}:80' - - '${VITE_PORT:-5173}:${VITE_PORT:-5173}' - environment: - WWWUSER: '${WWWUSER}' - LARAVEL_SAIL: 1 - XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}' - XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}' - IGNITION_LOCAL_SITES_PATH: '${PWD}' - volumes: - - '.:/var/www/html' - networks: - - sail - depends_on: - - mysql - - redis - - meilisearch - - mailpit - - selenium - mysql: - image: 'mysql/mysql-server:8.0' - ports: - - '${FORWARD_DB_PORT:-3306}:3306' - environment: - MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}' - MYSQL_ROOT_HOST: '%' - MYSQL_DATABASE: '${DB_DATABASE}' - MYSQL_USER: '${DB_USERNAME}' - MYSQL_PASSWORD: '${DB_PASSWORD}' - MYSQL_ALLOW_EMPTY_PASSWORD: 1 - volumes: - - 'sail-mysql:/var/lib/mysql' - - './vendor/laravel/sail/database/mysql/create-testing-database.sh:/docker-entrypoint-initdb.d/10-create-testing-database.sh' - networks: - - sail - healthcheck: - test: - - CMD - - mysqladmin - - ping - - '-p${DB_PASSWORD}' - retries: 3 - timeout: 5s - redis: - image: 'redis:alpine' - ports: - - '${FORWARD_REDIS_PORT:-6379}:6379' - volumes: - - 'sail-redis:/data' - networks: - - sail - healthcheck: - test: - - CMD - - redis-cli - - ping - retries: 3 - timeout: 5s - meilisearch: - image: 'getmeili/meilisearch:latest' - ports: - - '${FORWARD_MEILISEARCH_PORT:-7700}:7700' - environment: - MEILI_NO_ANALYTICS: '${MEILISEARCH_NO_ANALYTICS:-false}' - volumes: - - 'sail-meilisearch:/meili_data' - networks: - - sail - healthcheck: - test: - - CMD - - wget - - '--no-verbose' - - '--spider' - - 'http://127.0.0.1:7700/health' - retries: 3 - timeout: 5s - mailpit: - image: 'axllent/mailpit:latest' - ports: - - '${FORWARD_MAILPIT_PORT:-1025}:1025' - - '${FORWARD_MAILPIT_DASHBOARD_PORT:-8025}:8025' - networks: - - sail - selenium: - image: selenium/standalone-chromium - extra_hosts: - - 'host.docker.internal:host-gateway' - volumes: - - '/dev/shm:/dev/shm' - networks: - - sail + api: + image: php + build: . + volumes: + - .:/var/www/html + ports: + - "8080:80" + networks: + - app + db: + image: "mariadb" + ports: + - "3306:3306" + environment: + MYSQL_ROOT_PASSWORD: "password" + MYSQL_DATABASE: "lan_kiosk" + MYSQL_USER: "root" + MYSQL_PASSWORD: "password" + MYSQL_ALLOW_EMPTY_PASSWORD: "yes" + volumes: + - "appdb:/var/lib/mysql" + networks: + - app networks: - sail: - driver: bridge + app: + driver: bridge volumes: - sail-mysql: - driver: local - sail-redis: - driver: local - sail-meilisearch: - driver: local + appdb: + driver: local +