69 lines
2.0 KiB
Plaintext
69 lines
2.0 KiB
Plaintext
FROM php:8.2-apache
|
|
|
|
COPY ./dev-apache2.conf /etc/apache2/apache2.conf
|
|
COPY ./dev-ports.conf /etc/apache2/ports.conf
|
|
|
|
# Ensure packages are available.
|
|
RUN apt-get update
|
|
|
|
RUN DEBIAN_FRONTEND=noninteractive \
|
|
apt install -fqy \
|
|
libonig-dev \
|
|
libcurl4-openssl-dev \
|
|
libxml2-dev \
|
|
libxslt1-dev \
|
|
libzip-dev \
|
|
libjson-c-dev \
|
|
libldap-dev \
|
|
libargon2-dev \
|
|
libfreetype6-dev \
|
|
libjpeg62-turbo-dev \
|
|
libpng-dev \
|
|
libpq-dev \
|
|
apt-utils \
|
|
vim \
|
|
curl \
|
|
sqlite3 \
|
|
openssl \
|
|
default-mysql-client \
|
|
iputils-ping \
|
|
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
|
|
|
# xdebug (coverage) + redis (cache) are optional for the test/dev image — the test env runs on
|
|
# file cache/session (see .dev/test.env). Don't let an intermittent pecl.php.net outage
|
|
# ("No releases available for ...") fail the whole image build and block all CI.
|
|
RUN pecl install xdebug redis || echo "pecl unavailable — building without xdebug/redis"
|
|
|
|
RUN docker-php-ext-configure gd --enable-gd --with-jpeg=/usr/include/ --with-freetype --with-jpeg
|
|
RUN docker-php-ext-install \
|
|
gd \
|
|
mysqli \
|
|
pdo_mysql \
|
|
pdo_pgsql \
|
|
mbstring \
|
|
exif \
|
|
pcntl \
|
|
pdo \
|
|
bcmath \
|
|
opcache \
|
|
ldap \
|
|
zip
|
|
# zip is always installed above; xdebug/redis only if pecl was reachable. Enable each one
|
|
# independently and best-effort, so a missing extension (partial pecl outage) doesn't prevent
|
|
# enabling the one that IS present.
|
|
RUN docker-php-ext-enable zip \
|
|
&& (docker-php-ext-enable xdebug || echo "xdebug not installed, skipping enable") \
|
|
&& (docker-php-ext-enable redis || echo "redis not installed, skipping enable")
|
|
|
|
COPY ./dev-apache-site.conf /etc/apache2/sites-enabled/000-default.conf
|
|
|
|
RUN openssl req -x509 -newkey rsa:4096 -keyout /etc/ssl/private/key.pem -out /etc/ssl/certs/cert.pem -days 365 -nodes -subj "/C=US/ST=NY/L=NY/O=ACME/OU=CD/CN=AcmeWPDeveloper"
|
|
|
|
RUN a2enmod ssl
|
|
RUN a2enmod rewrite
|
|
|
|
VOLUME /var/www/uploads
|
|
|
|
RUN mkdir -p /var/www/uploads \
|
|
&& chown -R www-data:www-data /var/www/uploads
|