FreeTds внутри Docker вызывает исключение неизвестного символа - PullRequest
0 голосов
/ 21 июня 2019

Я пытаюсь запустить CGI-сайт в докере. Программное обеспечение написано на c ++ и использует пакет FreeTDS-dev для подключения к базе данных mssql. пока он работает, как и должно быть, единственная проблема: Если я пытаюсь скомпилировать или запустить его внутри докера, я получаю следующее исключение:

undefined symbol: dbprcollen

теперь я знаю, где находится точная строка кода, и я также знаю, что эта конкретная функция должна быть внутри пакета freetds-dev. Итак, я включил этот пакет в Dockerfile но это все равно не сработает. Кто-нибудь знает, что мне не хватает?

Вот мой докер-файл:

FROM php:apache

COPY ./html/ /var/www/html/
COPY ./work.cgi /var/www/html/work.cgi

RUN chmod +x /var/www/html/work.cgi
RUN a2enmod rewrite
RUN echo "<Directory /var/www/html/>\n\
        AllowOverride all\n\
        Options +ExecCGI\n\
        AddHandler cgi-script .cgi\n\
</Directory>" >> /etc/apache2/apache2.conf
RUN ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/cgi.load

RUN apt update -y
RUN apt upgrade -y
RUN apt install build-essential -y
RUN apt install binutils -y
RUN apt install libcgicc-dev -y
RUN apt install freetds-bin -y
RUN apt install freetds-dev -y
RUN apt update --fix-missing -y
RUN apt upgrade -y
...