我想在构建图像时编译自己的Apache模块,所以我编写了以下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 install gcc或libtool它说它无法找到包。
我的目标是编译" .c"文件在" .so"文件。
答案 0 :(得分:0)
只需要安装gcc或者说libapr1的build-deps。您可能只是在未指定的尝试从dockerfile添加编译器时遇到问题。
对于referene,这是httpd层添加编译器的方式: https://github.com/docker-library/httpd/blob/master/2.4/Dockerfile
答案 1 :(得分:0)
我需要做一个apt-get update
然后:
apt-get install build-essential libtool
由于泊坞窗图像是prod图像,因此它不包含开发工具。