如何在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镜像,它不包含开发工具。