2016-12-16 47 views
3

我正在嘗試創建一個Dockerfile來安裝VuFind。Dockerfile和dpkg命令

這是我Dockerfile:

#Name of container: docker-vufind:3 

# Pull base image 
FROM ubuntu:16.04 
MAINTAINER xxx "[email protected]" 

#Install latest patches 
RUN apt-get update && apt-get install -y \ 
    && apt-get install -y wget 

#Obtain the package 
RUN wget http://downloads.sourceforge.net/vufind/vufind_3.1.1.deb?use_mirror=osdn -O vufind_3.1.1.deb 

#Install it 
RUN dpkg -i vufind_3.1.1.deb 

#Install VuFind's dependecies 
RUN apt-get install -y -f 

我啓動了我的Ubuntu的bash的這些命令和軟件運行良好,但似乎我無法獲得與Dockerfile相同的結果,因爲dpkg命令失敗缺乏依賴關係。

The command '/bin/sh -c dpkg -i vufind_3.1.1.deb' returned a non-zero code: 1 

是dpkg命令行,然後再安裝的依賴條件(Apache的,JDK,PHP ...)創建工作Dockerfile還是有一個較短的方式的唯一途徑?

回答

2

不是最優雅的,但...

#Install it 
RUN dpkg -i vufind_3.1.1.deb || true //continue executing even if command fails 

#Install VuFind's dependecies 
RUN apt-get install -y -f 
+1

是不是最後一行不必要?即apt-get install -f也會安裝以前嘗試過的deb包。 –

+0

確實,最後一行不再需要。一切都應該在第二個命令後解決。 – gXg

1

用apt版本1.1~exp11,您可以安裝的.deb文件,並直接與單獨apt解決依賴(對於Ubuntu 16.04是可用):

apt install ./vufind_3.1.1.deb 

介意./