如何在dockerfile中编译apache2自己的模块?
我想编译我自己的Apache模块,当我build立我的形象,所以我写了下面的Dockerfile。
FROM httpd:2.4.25 COPY conf/httpd.conf /usr/local/apache2/conf/httpd.conf COPY modules/mod_example.c /usr/local/apache2/modules/mod_example.c RUN apxs -i -a -c modules/mod_example.c EXPOSE 80
但是我得到一个错误:
/usr/share/apr-1.0/build/libtool --silent --mode=compile x86_64-linux-gnu-gcc -std=gnu99 -prefer-pic -DLINUX -D_REENTRANT -D_GNU_SOURCE -pthread -I/usr/local/apache2/include -I/usr/include/apr-1.0 -I/usr/include/apr-1.0 -I/usr/include -c -o mod_example.lo mod_example.c && touch mod_example.slo /usr/share/apr-1.0/build/libtool: line 1114: x86_64-linux-gnu-gcc: command not found apxs:Error: Command failed with rc=65536
我尝试apt-get安装gcc或libtool它说它无法find包。
我的目标是在“.so”文件中编译“.c”文件。
安装gcc,或者说libapr1的build-deps,都是需要的。 您可能只是在您的dockerfile中添加编译器时出现问题。
对于参考,这里是httpd层如何添加编译器: https : //github.com/docker-library/httpd/blob/master/2.4/Dockerfile
我需要做一个apt-get update
然后:
apt-get install build-essential libtool
由于docker镜像是一个prod镜像,它不包含开发工具。