diff --git a/.docker/php/Dockerfile b/.docker/php/Dockerfile new file mode 100644 index 0000000..78f7ecf --- /dev/null +++ b/.docker/php/Dockerfile @@ -0,0 +1,51 @@ +ARG PHP_VERSION=8.2.7 +ARG DEBIAN_RELEASE=bullseye + +FROM php:${PHP_VERSION}-cli-${DEBIAN_RELEASE} + +ARG COMPOSER_ALLOW_SUPERUSER=1 +ARG COMPOSER_NO_INTERACTION=1 +ARG COMPOSER_VERSION=2.7.6 +ARG DEBIAN_FRONTEND=noninteractive +ARG DOCKER_PHP_DEPS='gnupg libxml2-dev libzip-dev unzip' +ARG XDEBUG_VERSION=3.2.1 + +RUN set -xe; \ + apt-get --allow-releaseinfo-change update && \ + apt-get install -y -qq ${DOCKER_PHP_DEPS} --no-install-suggests --no-install-recommends && \ + docker-php-ext-install -j$(nproc) xml && \ + docker-php-ext-install -j$(nproc) zip && \ + pecl install xdebug-${XDEBUG_VERSION} && docker-php-ext-enable xdebug && \ + rm -rf /var/lib/apt/lists/* && \ + apt-get clean + +COPY .docker/php/conf.d/*.ini /usr/local/etc/php/conf.d/ + +# Memory limit +RUN echo "memory_limit = 1G" >> /usr/local/etc/php/php.ini + +# Install composer +RUN set -xe; \ + curl -sS https://getcomposer.org/installer | php -- --filename=composer --install-dir=/usr/local/bin --version=${COMPOSER_VERSION} > /dev/null 2>&1 && \ + chmod +x /usr/local/bin/composer + +# Install PHIVE +RUN set -xe; \ + curl -sSL -o phive.phar https://phar.io/releases/phive.phar && \ + curl -sSL -o phive.phar.asc https://phar.io/releases/phive.phar.asc && \ + gpg --keyserver hkps://keys.openpgp.org --recv-keys 0x9D8A98B29B2D5D79 && \ + gpg --verify phive.phar.asc phive.phar && \ + chmod +x phive.phar && \ + mv phive.phar /usr/local/bin/phive + +WORKDIR /app + +COPY composer.* ./ + +RUN set -xe; \ + composer install --no-autoloader --no-dev --no-interaction --no-progress --no-scripts --no-suggest --prefer-dist && \ + composer clear-cache && \ + rm -rf ./vendor/*/*/tests + +COPY ./ ./ +RUN composer dump-autoload diff --git a/.docker/php/conf.d/docker-php-ext-xdebug.ini b/.docker/php/conf.d/docker-php-ext-xdebug.ini new file mode 100644 index 0000000..a86646f --- /dev/null +++ b/.docker/php/conf.d/docker-php-ext-xdebug.ini @@ -0,0 +1,11 @@ +[xdebug] +zend_extension=xdebug.so + +xdebug.mode=coverage,debug +xdebug.client_host=host.docker.internal +xdebug.client_port=9003 +xdebug.discover_client_host=true +xdebug.start_with_request=yes +xdebug.idekey=PHPSTORM +xdebug.log_level=0 +xdebug.log=/app/var/xdebug.log diff --git a/.env b/.env deleted file mode 100644 index 63272f5..0000000 --- a/.env +++ /dev/null @@ -1,2 +0,0 @@ -COMPOSE_FILE=docker/docker-compose.yml -COMPOSE_PROJECT_NAME=pccb \ No newline at end of file diff --git a/compose.yaml b/compose.yaml new file mode 100644 index 0000000..258b518 --- /dev/null +++ b/compose.yaml @@ -0,0 +1,11 @@ +version: '3.1' + +services: + php: + build: + context: ./ + dockerfile: .docker/php/Dockerfile + restart: on-failure + volumes: + - ./:/app:delegated + diff --git a/docker/.Dockerfile b/docker/.Dockerfile deleted file mode 100644 index 37660ea..0000000 --- a/docker/.Dockerfile +++ /dev/null @@ -1,43 +0,0 @@ -ARG PHP_VERSION=php:7.1 -FROM ${PHP_VERSION} -RUN apt-get --allow-releaseinfo-change update && apt-get install -y \ - libxml2-dev \ - libzip-dev \ - unzip \ - git \ - && docker-php-ext-install -j$(nproc) xml \ - && docker-php-ext-install -j$(nproc) zip - -# Xdebug -ARG XDEBUG_VERSION=2.9.8 -ARG PHP_XDEBUG_PORT=9003 -RUN pecl install xdebug-${XDEBUG_VERSION} \ - && docker-php-ext-enable xdebug -RUN echo "xdebug.mode=coverage,debug" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ - && echo "xdebug.start_with_request=yes" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ - && echo "xdebug.client_host=\"host.docker.internal\"" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ - && echo "xdebug.discover_client_host=true" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ - && echo "xdebug.client_port=\${PHP_XDEBUG_PORT}" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini - -# Memory limit -RUN echo "memory_limit = 1G" >> /usr/local/etc/php/php.ini - -RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \ - && php composer-setup.php --filename composer --install-dir=/bin \ - && php -r "unlink('composer-setup.php');" - -# Install PHIVE -RUN set -xe; \ - curl -sSL -o phive.phar https://phar.io/releases/phive.phar && \ - curl -sSL -o phive.phar.asc https://phar.io/releases/phive.phar.asc && \ - gpg --keyserver hkps://keys.openpgp.org --recv-keys 0x9D8A98B29B2D5D79 && \ - gpg --verify phive.phar.asc phive.phar && \ - chmod +x phive.phar && \ - mv phive.phar /usr/local/bin/phive - -WORKDIR /app - -COPY composer.json composer.json -RUN composer install --prefer-dist --no-suggest --no-interaction --no-scripts --classmap-authoritative --no-autoloader -COPY ./ ./ -RUN composer dump-autoload diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml deleted file mode 100644 index 4be3e01..0000000 --- a/docker/docker-compose.yml +++ /dev/null @@ -1,15 +0,0 @@ -version: '3.1' - -services: - php: - build: - dockerfile: ./docker/.Dockerfile - context: ./../ - args: - PHP_VERSION: ${PHP_VERSION:-php:7.1} - PHP_XDEBUG_PORT: ${PHP_XDEBUG_PORT:-9003} - XDEBUG_VERSION: ${XDEBUG_VERSION:-2.9.8} - restart: on-failure - volumes: - - ./../:/app:delegated -