我目前在为php应用程序编写Dockerfile时遇到问题。 我的Dockerfile工作但缺少连接到MS SQL Server数据库所需的pdo-odbc驱动程序。这是我当前的Dockerfile:
from tkinter import *
root = Tk()
def task():
print('foobar')
root.after(5000, task)
root.mainloop()
脚本在第6行崩溃,我尝试启用扩展程序:
FROM php:apache
RUN apt-get install && \
apt-get update && \
apt-get install tdsodbc unixodbc unixodbc-dev -y && \
docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr && \
docker-php-ext-enable pdo_odbc && \
a2enmod rewrite && \
service apache2 restart && \
sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf && \
sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf && \
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \
php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" && \
php composer-setup.php && \
php -r "unlink('composer-setup.php');" && \
mv composer.phar /usr/local/bin/composer
COPY php.ini /usr/local/etc/php/
COPY . /var/www/html/
我也尝试使用docker-php-ext-install但仍然无法正常工作。我们如何安装或启用此扩展程序?
答案 0 :(得分:1)
根据https://github.com/docker-library/php/issues/103,你可以试试这个:
FROM php
RUN apt-get update && apt-get install -y unixODBC-dev && rm -rf /var/lib/apt/lists/*
RUN set -x \
&& cd /usr/src/php/ext/odbc \
&& phpize \
&& sed -ri 's@^ *test +"\$PHP_.*" *= *"no" *&& *PHP_.*=yes *$@#&@g' configure \
&& ./configure --with-unixODBC=shared,/usr \
&& docker-php-ext-install odbc
答案 1 :(得分:1)
这对我有用:
RUN apt-get install unixodbc unixodbc-dev -y \
&& docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr \
&& docker-php-ext-install pdo_odbc