Hi guys,
Fairly new to docker and been stuck on this below error for a legacy website whenever I build using docker-compose up -d --build
configure: error: mcrypt.h not found. Please reinstall libmcrypt.
I’ve tried removing mcrypt package from RUN docker-php-ext-install, changing the PHP version. Nothing fixes it.
Found a few answers online saying you need the libmcrypt-dev, which is already included.
docker-compose.yml
version: '3'
services:
db:
image: mysql:5
restart: unless-stopped
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_DATABASE: database
MYSQL_ROOT_PASSWORD: password
web:
build: .
ports:
- '${HTTP_PORT:-8000}:80'
restart: unless-stopped
volumes:
- ./craft:/var/www/craft
- ./public:/var/www/public
depends_on:
- db
volumes:
db_data:
Dockerfile
FROM php:5.6-apache-stretch
RUN usermod -u 1000 www-data
RUN groupmod -g 1000 www-data
# Install selected extensions and other stuff
RUN apt-get update \
&& apt-get -y --no-install-recommends install \
libjpeg-dev \
libpng-dev \
mysql-client \
unzip \
rsync \
libmagickwand-dev \
libmagickcore-dev \
imagemagick \
libmcrypt-dev \
libgeoip-dev \
libssl1.0.2 \
&& apt-get clean; \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*
# pdo and mysql
RUN docker-php-ext-install pdo pdo_mysql mysql mcrypt xmlrpc
# apache mod_rewrite
RUN a2enmod rewrite
# imagemagick
RUN pecl install geoip-1.0.8 imagick-3.4.3 xdebug-2.5.5
# Install Twig C extension
RUN curl -L -o /root/twig.tar.gz https://github.com/twigphp/Twig/archive/v1.24.0.tar.gz && \
cd /root && \
tar -zxvf twig.tar.gz && \
cd /root/Twig-1.24.0/ext/twig && \
/usr/local/bin/phpize && \
./configure --with-php-config=/usr/local/bin/php-config && \
make && \
make install && \
cd /root && \
rm -fr /root/CTwig-1.24.0 && \
rm -fr /root/twig.tgz
WORKDIR /var/www
# change web root (craft expects public)
ENV APACHE_DOCUMENT_ROOT /var/www/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
RUN echo "LoadModule deflate_module modules/mod_deflate.so" >> /etc/apache2/apache2.conf
# add to apache conf
COPY apache.conf /etc/apache2/conf-available/milesre.conf
RUN a2enconf milesre
# copy php.ini
COPY php.ini /usr/local/etc/php/conf.d/
# Run apache
CMD ["sh", "-c", "chown -R www-data:www-data public craft && apache2-foreground"]