|
| 1 | +############################################################################### |
| 2 | +# Pre-configured WordPress Installation w/ WPGraphQL Logging Plugin |
| 3 | +# For testing only, use in production not recommended. # |
| 4 | +############################################################################### |
| 5 | + |
| 6 | +# Use build args to get the right wordpress + php image |
| 7 | +ARG WP_VERSION |
| 8 | +ARG PHP_VERSION |
| 9 | + |
| 10 | +FROM wordpress:${WP_VERSION:-6.8}-php${PHP_VERSION:-8.2} |
| 11 | + |
| 12 | +# Needed to specify the build args again after the FROM command. |
| 13 | +ARG WP_VERSION |
| 14 | +ARG PHP_VERSION |
| 15 | + |
| 16 | +# Save the build args for use by the runtime environment |
| 17 | +ENV WP_VERSION=${WP_VERSION} |
| 18 | +ENV PHP_VERSION=${PHP_VERSION} |
| 19 | + |
| 20 | +SHELL [ "/bin/bash", "-c" ] |
| 21 | + |
| 22 | +# Install required packages |
| 23 | +RUN apt-get update && \ |
| 24 | + apt-get -y install \ |
| 25 | + git \ |
| 26 | + ssh \ |
| 27 | + tar \ |
| 28 | + gzip \ |
| 29 | + mariadb-client \ |
| 30 | + net-tools |
| 31 | + |
| 32 | +# Needed for Codeception WPDB test integration. |
| 33 | +RUN docker-php-ext-install pdo pdo_mysql |
| 34 | + |
| 35 | +# Install XDebug 3 |
| 36 | +RUN if [[ $PHP_VERSION == 7* ]]; then pecl install xdebug-3.1.5; else pecl install xdebug; fi \ |
| 37 | + && mkdir -p /usr/local/etc/php/conf.d/disabled \ |
| 38 | + && echo "zend_extension=xdebug" > /usr/local/etc/php/conf.d/disabled/docker-php-ext-xdebug.ini \ |
| 39 | + && echo "xdebug.mode=develop,debug,coverage" >> /usr/local/etc/php/conf.d/disabled/docker-php-ext-xdebug.ini \ |
| 40 | + && echo "xdebug.start_with_request=yes" >> /usr/local/etc/php/conf.d/disabled/docker-php-ext-xdebug.ini \ |
| 41 | + && echo "xdebug.client_host=host.docker.internal" >> /usr/local/etc/php/conf.d/disabled/docker-php-ext-xdebug.ini \ |
| 42 | + && echo "xdebug.client_port=9003" >> /usr/local/etc/php/conf.d/disabled/docker-php-ext-xdebug.ini \ |
| 43 | + && echo "xdebug.max_nesting_level=512" >> /usr/local/etc/php/conf.d/disabled/docker-php-ext-xdebug.ini \ |
| 44 | + ; |
| 45 | + |
| 46 | +# Set xdebug configuration off by default. Set USING_XDEBUG=1 in the runtime environment to enable it. |
| 47 | +ENV USING_XDEBUG=0 |
| 48 | + |
| 49 | +# Install PCOV |
| 50 | +# This is needed for Codeception / PHPUnit to track code coverage |
| 51 | +RUN apt-get install zip unzip -y \ |
| 52 | + && pecl install pcov |
| 53 | + |
| 54 | +# Install Dockerize |
| 55 | +ENV DOCKERIZE_VERSION=v0.7.0 |
| 56 | +RUN curl -L -O https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ |
| 57 | + && tar -C /usr/local/bin -xzvf dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ |
| 58 | + && rm dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz |
| 59 | + |
| 60 | +# Install composer |
| 61 | +COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer |
| 62 | +RUN chmod +x /usr/local/bin/composer |
| 63 | + |
| 64 | +# Install WP-CLI |
| 65 | +RUN curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \ |
| 66 | + && chmod +x wp-cli.phar \ |
| 67 | + && mv wp-cli.phar /usr/local/bin/wp |
| 68 | + |
| 69 | +# Install nvm, Node.js, and npm |
| 70 | +ENV NVM_DIR=/usr/local/nvm |
| 71 | +ENV NODE_VERSION=20 |
| 72 | + |
| 73 | +RUN mkdir -p $NVM_DIR |
| 74 | +RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash \ |
| 75 | + && . $NVM_DIR/nvm.sh \ |
| 76 | + && nvm install $NODE_VERSION \ |
| 77 | + && nvm use $NODE_VERSION \ |
| 78 | + && nvm alias default $NODE_VERSION \ |
| 79 | + && npm install -g npm |
| 80 | + |
| 81 | +# Setup the container for testing |
| 82 | +COPY init-docker.sh /usr/local/bin/ |
| 83 | +RUN chmod +x /usr/local/bin/init-docker.sh |
0 commit comments