Estoy tratando de crear mi primera imagen, que bifurqué de otra persona, y me encuentro con un problema en el que falla la compilación. Parece que el error está aquí.
[91mconfigure: error: Cannot find FreeTDS in known installation directories [0m no checking for PDO_DBLIB support via FreeTDS... yes, sharedArchivo acoplable
FROM php:5.6.30-apache ENV DOWNLOAD_URL https://www.limesurvey.org/stable-release?download=2044:limesurvey2647%20170404targz #php extensions RUN docker-php-ext-install pdo pdo_mysql pdo_dblib pdo_pgsql \ && apt-get update && apt-get install -y \ freetds-bin \ freetds-dev \ freetds-common \ libct4 \ libsybdb5 \ tdsodbc \ libfreetype6-dev \ libjpeg62-turbo-dev \ libmcrypt-dev \ libpng12-dev \ libldap2-dev \ zlib1g-dev \ libc-client-dev \ libkrb5-dev \ && docker-php-ext-install -j$(nproc) iconv mcrypt \ && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ && docker-php-ext-install -j$(nproc) gd \ && docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu \ && docker-php-ext-install ldap \ && docker-php-ext-install zip \ && docker-php-ext-configure imap --with-imap-ssl --with-kerberos \ && docker-php-ext-install imap \ && rm -rf /var/lib/apt/lists/* \ #Download and install LimeSurvey && curl -SL "$DOWNLOAD_URL" -o /tmp/lime.tar.gz \ && tar xf /tmp/lime.tar.gz limesurvey --strip-components=1 -C /var/www/html \ && chown -R www-data:www-data /var/www/html \ && rm -f /tmp/lime.tar.gz \ && chmod -R 755 /var/www/html/tmp \ && chmod -R 755 /var/www/html/upload \ && chmod -R 755 /var/www/html/application/config \ && mkdir -p /var/lib/php5 \ && chown www-data:www-data /var/lib/php5La imagen está usando PHP 5.6.30. ¿Cómo puedo obtener esto para ver la instalación de freetds?
Debe tener en cuenta el orden de instalación correcto de los paquetes dependientes. Actualmente, su comando EJECUTAR instala RUN freetds-{bin,dev} después del comando docker-php-ext-install pdo pdo_mysql pdo_dblib pdo_pgsql . Si cambia el orden de los pasos de instalación, se encontrarán los archivos freetds. Fragmento de ejemplo:
RUN apt-get update && apt-get install -y \ freetds-bin \ freetds-dev \ freetds-common \ libct4 \ libsybdb5 \ tdsodbc \ libfreetype6-dev \ libjpeg62-turbo-dev \ libmcrypt-dev \ libpng12-dev \ libldap2-dev \ zlib1g-dev \ libc-client-dev \ ... && docker-php-ext-install pdo pdo_mysql pdo_dblib pdo_pgsql \ ...Sin embargo, eso no será suficiente. Tuve el siguiente error:
configure: error: Could not find /usr/lib/libsybdb.a|so Puede encontrar soluciones a tales problemas a través de Google. En ese caso especial, solo necesita agregar un enlace simbólico como parte de su comando RUN (que se encuentra en https://github.com/phpbrew/phpbrew/issues/643#issuecomment-165447722 ):
ln -s /path/to/your/libsybdb.a /usr/lib/Pueden surgir problemas similares al trabajar con su Dockerfile.
Para el desarrollo, recomiendo dividir el enorme comando RUN en varios comandos RUN dedicados para que no tenga que realizar cada paso una y otra vez. Cuando esté seguro de que Dockerfile funciona, puede volver a unir los comandos en un único comando RUN .