Using git bash and doing a docker compose up -d
I get the following error after sometime building:
checking whether to enable LibYAML suppot... yes, shared checking for yaml headers... not found configure: error: Please install libyaml ERROR: '/tmp/pear/temp/yaml/configure --with-php-config=/usr/local/bin/php-config --with-yaml' failed
I have two dockerfiles – Dockerfile7.2.phalcon (Composer module) and Dockerfile7.2.phalcon (PHP module). Here they are, respectively:
Composer
#USE this Dockerfile if you want to test the image
ARG PHP_VERSION=7.2
ARG PHP_IMAGE=php:${PHP_VERSION}-fpm-alpine3.10
ARG PHP_PHALCON_VERSION=3.4.x
ARG PHP_COMPOSER_VERSION=2.1.8
ARG COMPOSER_IMAGE=composer:${PHP_COMPOSER_VERSION}
ARG AMQP_VERSION=amqp-1.10.2
ARG PHP_XDEBUG_VERSION=xdebug-3.1.0
FROM ${PHP_IMAGE} AS php
ARG AMQP_VERSION
ARG PHP_PHALCON_VERSION
ARG PHP_XDEBUG_VERSION
# Fix timezone issue
ENV TZ=Europe/Lisbon
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
;
apk upgrade --update-cache --available &&
apk add --update --no-cache
apk --update yaml-dev
apk add --no-cache --virtual .build-deps
g++ make autoconf
apk del --purge .build-deps
autoconf bash g++ coreutils gcc make git openssh-client
openssl-dev patch pkgconfig subversion tini
#dep for php ext: gettext
gettext-dev
#dep for php ext: intl
icu-dev
#dep for php ext: bz2
bzip2-dev
#dep for php ext: memcached
libmemcached-dev libsodium zlib-dev
#dep for php ext: xsl + soap
libxslt-dev
#dep for php ext: mongodb
mongodb-tools
#dep for php ext: msgpack
msgpack-c
#dep for php ext: rabbitmq / amqp
rabbitmq-c-dev
#dep for php ext: yaml
yaml-dev
#dep for php ext: zip
unzip zip
libyaml-dev
;
docker-php-source extract
# && docker-php-ext-install -j$(nproc)
&& docker-php-ext-install
bcmath
bz2
calendar
exif
gettext
intl
# process control ?
# pcntl
pdo_mysql
# shared memory ?
# shmop
soap
sockets
# WDDX ?
# wddx
xsl
zip
;
pecl channel-update pecl.php.net
&& pecl install igbinary
&& pecl install msgpack
&& pecl install mongodb-1.10.0
&& pecl install ${PHP_XDEBUG_VERSION}
&& printf "n" | pecl install yaml-2.0.4
&& pecl install memcached
&& printf "n" | pecl install ${AMQP_VERSION}
&& printf "n" | pecl install redis-5.3.2
&& docker-php-ext-enable igbinary msgpack mongodb xdebug yaml memcached redis
# enabling amqp ext this way avoids coflicts loading dependecies (sockets)
&& echo "extension=amqp" > /usr/local/etc/php/conf.d/40-amqp.ini
# && pecl bundle redis
# && docker-php-ext-configure redis --enable-redis-igbinary
# && docker-php-ext-install redis
&& docker-php-source delete
&& mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
## Composer
ARG COMPOSER_IMAGE
FROM ${COMPOSER_IMAGE} AS composer
FROM php AS phalcon
ARG PHP_PHALCON_VERSION
#phalcon
RUN cd ~ && git clone --depth=1 -b ${PHP_PHALCON_VERSION} git://github.com/phalcon/cphalcon.git
&& cd ~/cphalcon/build
&& ./install
&& echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/50-phalcon.ini
&& rm -rf ~/cphalcon
;
# clean up
apk del autoconf bash check-dev cyrus-sasl-dev g++ gcc
imagemagick-dev libc-dev libssh2-dev libsodium-dev
m4 make musl-dev openssl-dev perl pkgconfig
tzdata
&& rm -rf /var/cache/apk/* && rm -rf /tmp/*
# RUN php -r "echo PhalconVersion::get();"
COPY --from=composer /usr/bin/composer /usr/bin/composer
WORKDIR /app
PHP
#USE this Dockerfile if you want to test the image
ARG PHP_VERSION=7.2
ARG PHP_IMAGE=php:${PHP_VERSION}-fpm-alpine3.10
ARG PHP_PHALCON_VERSION=3.4.x
ARG AMQP_VERSION=amqp-1.10.2
ARG PHP_CONFIG_PATH=-
ARG PHP_XDEBUG_VERSION=xdebug-3.1.0
# FROM ${PHP_IMAGE} AS php
FROM ${PHP_IMAGE} AS phalcon
ARG PHP_PHALCON_VERSION
ARG AMQP_VERSION
ARG PHP_CONFIG_PATH
ARG PHP_XDEBUG_VERSION
# Fix timezone issue
ENV TZ=Europe/Lisbon
RUN yes | ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
;
apk upgrade --update-cache --available &&
apk add --update --no-cache
apk --update yaml-dev
apk add --no-cache --virtual .build-deps
g++ make autoconf
autoconf bash g++ coreutils gcc make git openssh-client
openssl patch pkgconfig subversion tini
#dep for php ext: gettext
gettext-dev
#dep for php ext: intl
icu-dev
#dep for php ext: bz2
bzip2-dev
#dep for php ext: memcached
libmemcached-dev libsodium zlib-dev
#dep for php ext: xsl + soap
libxslt-dev
#dep for php ext: mongodb
mongodb-tools
#dep for php ext: msgpack
msgpack-c
#dep for php ext: rabbitmq / amqp
rabbitmq-c-dev
#dep for php ext: yaml
yaml-dev
#dep for php ext: zip
unzip zip
libyaml-dev
;
docker-php-source extract
# && docker-php-ext-install -j$(nproc)
&& docker-php-ext-install
bcmath
bz2
calendar
exif
gettext
intl
# process control ?
# pcntl
pdo_mysql
# shared memory ?
# shmop
soap
sockets
# WDDX ?
# wddx
xsl
zip
;
pecl channel-update pecl.php.net
&& pecl install igbinary
&& pecl install msgpack-2.1.2
&& pecl install mongodb-1.10.0
&& pecl install ${PHP_XDEBUG_VERSION}
&& printf "n" | pecl install yaml-2.0.4
&& pecl install memcached
&& printf "n" | pecl install ${AMQP_VERSION}
&& printf "n" | pecl install redis-5.3.2
&& docker-php-ext-enable igbinary msgpack mongodb xdebug memcached yaml redis
&& echo "extension=amqp" > /usr/local/etc/php/conf.d/40-amqp.ini
&& docker-php-source delete
# && mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
COPY ${PHP_CONFIG_PATH}config/php.ini "$PHP_INI_DIR/php.ini"
#https://bitbucket.org/zs_web/docker_env/src/develop/images/phalcon/dockerfile
COPY ${PHP_CONFIG_PATH}xdebug/xdebug.ini /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
# COPY ${PHP_CONFIG_PATH}/config/igbinary.ini /usr/local/etc/php/conf.d/docker-php-ext-igbinary.ini
# RUN cd ~ && pecl download memcached-3.1.5 && tar xzvf memcached-3.1.5.tgz
# && cd ~/memcached-3.1.5
# && phpize
# && ./configure --enable-memcached-igbinary --enable-memcached-msgpack
# && make
# && make install
# && rm -rf ~/memcached-3.1.5
# && echo "extension=memcached.so" > /usr/local/etc/php/conf.d/memcached.ini
RUN touch /var/log/xdebug.log
&& chown www-data:www-data /var/log/xdebug.log
&& chmod 664 /var/log/xdebug.log
# phalcon
&& cd ~ && git clone --depth=1 -b ${PHP_PHALCON_VERSION} https://github.com/phalcon/cphalcon.git
&& cd ~/cphalcon/build
&& ./install
&& echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/50-phalcon.ini
&& rm -rf ~/cphalcon
;
# clean up
apk del autoconf bash check-dev cyrus-sasl-dev g++ gcc
imagemagick-dev libc-dev libssh2-dev libsodium-dev
m4 make musl-dev openssl-dev perl pkgconfig
tzdata
&& rm -rf /var/cache/apk/* && rm -rf /tmp/*
# RUN php -r "echo PhalconVersion::get();"
WORKDIR /var/www
I have really tried a lot, and still nothing seems to work with me, this being a project given to me to develop after having it’s structure given, I’m supposed to have this run in a Dev Container, but nothing seems to get the Dockerfiles rolling, I have no idea which changes should be done to which file honestly, this being my first time programming with PHP along with a Dev Container.