2021-01-08 17:00:48 -05:00
|
|
|
ARG PHP_VERSION
|
2020-09-01 16:12:01 -04:00
|
|
|
FROM wordpress:php${PHP_VERSION}-apache
|
|
|
|
|
|
|
|
|
|
RUN apt-get update; \
|
|
|
|
|
apt-get install -y --no-install-recommends \
|
|
|
|
|
# WP-CLI dependencies.
|
2025-11-15 19:02:41 -05:00
|
|
|
bash less mariadb-client git \
|
2020-09-01 16:12:01 -04:00
|
|
|
# MailHog dependencies.
|
|
|
|
|
msmtp \
|
|
|
|
|
# Dockerize dependencies.
|
|
|
|
|
wget;
|
|
|
|
|
|
|
|
|
|
# Setup xdebug. The latest version supported by PHP 5.6 is 2.5.5.
|
2024-11-06 19:23:36 -05:00
|
|
|
RUN pecl install xdebug; \
|
2020-09-01 16:12:01 -04:00
|
|
|
docker-php-ext-enable xdebug; \
|
|
|
|
|
echo "xdebug.default_enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini; \
|
|
|
|
|
echo "xdebug.remote_autostart = 0" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini; \
|
2021-01-08 17:00:48 -05:00
|
|
|
echo "xdebug.remote_connect_back = 0" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini; \
|
2020-09-01 16:12:01 -04:00
|
|
|
echo "xdebug.remote_enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini; \
|
|
|
|
|
echo "xdebug.remote_port = 9000" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini; \
|
2026-03-26 17:20:55 -04:00
|
|
|
echo "xdebug.remote_log = ${PLUGINS_DIR}/wp-graphql-woocommerce/xdebug.log" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini; \
|
2024-11-06 19:23:36 -05:00
|
|
|
echo "xdebug.mode = coverage" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini;
|
2020-09-01 16:12:01 -04:00
|
|
|
|
2026-03-26 17:20:55 -04:00
|
|
|
ENV XDEBUG_MODE=coverage
|
|
|
|
|
|
2020-09-01 16:12:01 -04:00
|
|
|
# Install PDO MySQL driver.
|
|
|
|
|
RUN docker-php-ext-install pdo_mysql
|
|
|
|
|
|
|
|
|
|
# Install composer
|
|
|
|
|
ENV COMPOSER_ALLOW_SUPERUSER=1
|
|
|
|
|
|
|
|
|
|
RUN curl -sS https://getcomposer.org/installer | php -- \
|
|
|
|
|
--filename=composer \
|
|
|
|
|
--install-dir=/usr/local/bin
|
|
|
|
|
|
2025-11-15 19:02:41 -05:00
|
|
|
# Install WP-CLI
|
|
|
|
|
RUN curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \
|
|
|
|
|
&& chmod +x wp-cli.phar \
|
|
|
|
|
&& mv wp-cli.phar /usr/local/bin/wp
|
|
|
|
|
|
2020-09-01 16:12:01 -04:00
|
|
|
# Add composer global binaries to PATH
|
|
|
|
|
ENV PATH "$PATH:~/.composer/vendor/bin"
|
|
|
|
|
|
|
|
|
|
# Install wp-browser globally
|
|
|
|
|
RUN composer global require --optimize-autoloader \
|
2022-02-04 15:00:44 -05:00
|
|
|
wp-cli/wp-cli-bundle:* \
|
2024-05-21 00:48:16 -04:00
|
|
|
"lucatume/wp-browser:>3.1 <3.5" \
|
2024-05-07 16:50:42 -04:00
|
|
|
phpunit/phpunit:^9.6 \
|
2022-06-24 17:42:05 -04:00
|
|
|
codeception/module-asserts:* \
|
|
|
|
|
codeception/module-cli:* \
|
|
|
|
|
codeception/module-db:* \
|
|
|
|
|
codeception/module-filesystem:* \
|
|
|
|
|
codeception/module-phpbrowser:* \
|
|
|
|
|
codeception/module-rest:* \
|
|
|
|
|
codeception/module-webdriver:* \
|
|
|
|
|
codeception/util-universalframework:* \
|
2024-05-21 00:48:16 -04:00
|
|
|
guzzlehttp/guzzle \
|
2020-09-01 16:12:01 -04:00
|
|
|
league/factory-muffin \
|
|
|
|
|
league/factory-muffin-faker \
|
2021-01-08 17:00:48 -05:00
|
|
|
stripe/stripe-php \
|
2024-05-21 00:48:16 -04:00
|
|
|
wp-graphql/wp-graphql-testcase:^3.2
|
2020-09-01 16:12:01 -04:00
|
|
|
|
|
|
|
|
# Remove exec statement from base entrypoint script.
|
|
|
|
|
RUN sed -i '$d' /usr/local/bin/docker-entrypoint.sh
|
|
|
|
|
|
|
|
|
|
COPY local/php.ini /usr/local/etc/php/php.ini
|
2025-11-15 19:02:41 -05:00
|
|
|
|
|
|
|
|
# Disable SSL for MySQL client globally
|
|
|
|
|
RUN mkdir -p /etc/mysql/conf.d && \
|
|
|
|
|
echo '[client]' > /etc/mysql/conf.d/disable-ssl.cnf && \
|
|
|
|
|
echo 'ssl=0' >> /etc/mysql/conf.d/disable-ssl.cnf
|
|
|
|
|
|
2020-09-01 16:12:01 -04:00
|
|
|
RUN echo 'ServerName localhost' >> /etc/apache2/apache2.conf
|
|
|
|
|
RUN service apache2 restart
|
|
|
|
|
|
|
|
|
|
# Set project environmental variables
|
|
|
|
|
ENV WP_ROOT_FOLDER="/var/www/html"
|
|
|
|
|
ENV WORDPRESS_DB_HOST=${DB_HOST}
|
|
|
|
|
ENV WORDPRESS_DB_PORT=${DB_PORT}
|
|
|
|
|
ENV WORDPRESS_DB_USER=${DB_USER}
|
|
|
|
|
ENV WORDPRESS_DB_PASSWORD=${DB_PASSWORD}
|
|
|
|
|
ENV WORDPRESS_DB_NAME=${DB_NAME}
|
|
|
|
|
ENV PLUGINS_DIR="${WP_ROOT_FOLDER}/wp-content/plugins"
|
|
|
|
|
ENV PROJECT_DIR="${PLUGINS_DIR}/wp-graphql-woocommerce"
|
|
|
|
|
|
|
|
|
|
# Set up Apache
|
|
|
|
|
RUN echo 'ServerName localhost' >> /etc/apache2/apache2.conf
|
|
|
|
|
RUN a2enmod rewrite
|
|
|
|
|
|
|
|
|
|
WORKDIR /var/www/html
|
2024-05-21 00:48:16 -04:00
|
|
|
|
2020-09-01 16:12:01 -04:00
|
|
|
# Set codecept wrapper
|
|
|
|
|
COPY bin/codecept /usr/local/bin/codecept
|
|
|
|
|
RUN chmod 755 /usr/local/bin/codecept
|
|
|
|
|
|
|
|
|
|
# Set stall script.
|
|
|
|
|
ADD https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh /usr/local/bin/wait-for-it
|
|
|
|
|
RUN chmod 755 /usr/local/bin/wait-for-it
|
|
|
|
|
|
|
|
|
|
# Set up entrypoint
|
|
|
|
|
COPY bin/entrypoint.sh /usr/local/bin/app-entrypoint.sh
|
|
|
|
|
RUN chmod 755 /usr/local/bin/app-entrypoint.sh
|
|
|
|
|
ENTRYPOINT ["app-entrypoint.sh"]
|
|
|
|
|
CMD ["apache2-foreground"]
|