我正在尝试编写一个Dockerfile来构建基于“buildpack-deps:jessie-scm”图像的Kaldi(开源语音识别系统)。这是我的Dockerfile:
FROM buildpack-deps:jessie-scm
RUN apt-get update
RUN apt-get install -y python2.7 libtool python libtool-bin make
RUN mkdir /opt/kaldi
RUN git clone https://github.com/kaldi-asr/kaldi.git /opt/kaldi --depth=1
RUN ln -s -f bash /bin/sh
WORKDIR /opt/kaldi
RUN cd tools/extras && ./check_dependencies.sh
RUN cd tools && ./install_portaudio.sh
RUN cd tools && make -j 4 && make clean
RUN cd src && ./configure --shared --use-cuda=no && make depend && make -j 4 && make -j 4 online onlinebin online2 && make clean
这在“check_dependencies.sh”脚本失败,该脚本抱怨没有安装各种基本依赖项(g ++,zlib,automake,autoconf,patch,bzip2)...但是我对图像的描述基于此基础(https://github.com/docker-library/buildpack-deps/blob/587934fb063d770d0611e94b57c9dd7a38edf928/jessie/Dockerfile)表明所有这些依赖关系应该在基本映像中可用。为什么我的构建在这里失败?
我应该注意到,我已经在一个裸的Debian Jessie系统上尝试了这些构建步骤,并且安装了所需的依赖项,并且它们在那里很成功,所以我认为这不是Kaldi提供的构建脚本的问题,但绝对是与Docker相关的问题。
答案 0 :(得分:0)
看起来我误解了buildpack-deps
图片的不同标签。标记*-scm
不会将源代码控制工具添加到捆绑的构建工具和库中,它们只应用源代码控制工具,然后在这些工具之上添加构建工具。所以我应该只使用buildpack-deps:jessie
而不是buildpack-deps:jessie-scm
(后者基本上是一个裸装的Debian系统,安装了git等,但没有别的。)