2017-05-18 72 views
0

我正在嘗試編寫一個Dockerfile來構建基於「buildpack-deps:jessie-scm」圖像的Kaldi(一個開源語音識別系統)。這是我的Dockerfile:在docker中使用buildpack-deps構建,但依賴關係似乎沒有安裝?

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的,補丁,bzip2的)...但是基於此的圖像描述(https://github.com/docker-library/buildpack-deps/blob/587934fb063d770d0611e94b57c9dd7a38edf928/jessie/Dockerfile)表明,所有這些依賴關係都應該在基礎圖像中可用。爲什麼我的構建在這裏失敗?

我應該注意到,我試圖在Debian Jessie系統上安裝所需的依賴關係並在那裏成功完成這些構建步驟,所以我不認爲這是與Kaldi一起提供的構建腳本的問題,但絕對是一個Docker相關的問題。

回答

0

看起來像我誤解了buildpack-deps圖片的不同標籤。標籤*-scm不會將源代碼管理工具添加到捆綁的構建工具和庫中,它們只應用源代碼管理工具,然後將構建工具添加到這些工具之上。所以我應該只是使用buildpack-deps:jessie而不是buildpack-deps:jessie-scm(後者基本上是一個裸機Debian系統,安裝了git等,但沒有其他)。

相關問題