首页 > 解决方案 > Docker内的FreeTds抛出未知符号异常

问题描述

我正在尝试在 docker 中运行 CGI 网站。该软件是用 C++ 编写的,使用 FreeTDS-dev 包连接到 mssql 数据库。到目前为止,它应该唯一的问题是:如果我尝试在 docker 内部编译或运行它,我会收到以下异常:

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

标签: c++dockercgifreetds

解决方案


推荐阅读