2015-05-05 42 views
1

我試圖爲克隆的應用程序安裝postgresql-9.3-postgis-2.1或postgresql-9.1-postgis-2.1,但是我只能得到postgresql- 9.4-postgis-2.1在我的Ubuntu Docker鏡像上,它是由python:2.7鏡像構建的。無法在Ubuntu 14.04.1 Docker容器上獲取​​postgresql-9.3-postgis-2.1

我看着圖像,發現它在Ubuntu 14.04.1圖像上。我試圖在我的Xubuntu 14.04.2 VM上安裝postgis,一切正常。

我怎樣才能讓安裝工作正常?

Dockerfile是很容易的:

FROM python:2.7 
RUN mkdir /workspace 
RUN mkdir /data 
WORKDIR /workspace 
RUN apt-get update 
RUN apt-get install postgresql postgresql-common postgresql-9.3-postgis-2.1 

錯誤代碼是非常正常也:

E: Unable to locate package postgresql-9.3-postgis-2.1 
E: Couldn't find any package by regex 'postgresql-9.3-postgis-2.1' 
+0

@Michael Dockerfile是致命的簡單,我只是想要一些文件夾,並從requirements.txt安裝python庫。然後,我嘗試在將它寫入Dockerfile之前手動安裝postgres的庫。我試圖更新和升級,並搜索緩存的庫,但沒有任何工作。此外,谷歌並沒有給我更多的信息。 – kxxoling

回答

0

感謝所有試圖幫助我的人!雖然我最終解決這個問題我自己,沒有什麼不對的Dockerfile這是非常簡單的,但是我選擇了圖像不是一個典型的Ubuntu的形象,搬運工辦公使用的buildpack-deps:jessie代替ubuntu:14.04圖像: https://github.com/docker-library/python/blob/master/2.7/Dockerfile

這造成不同在docker和Ubuntu VM中的行爲。

最後,我從Ubuntu:12.04構建了一個Python映像並解決了這個問題。

0

請提供更多的信息,像dockerfile,你會得到錯誤。

從您的評論中,它顯示你加載的PostgreSQL庫之前的python庫。我假設你的python應用程序需要postgresql訪問,並且它使用了postgresql C庫中的一個python包裝。

如果是這種情況,請在安裝python庫之前安裝postgresql庫,並且不要忘記添加-dev庫。

我在這種情況下做的是製作一個最小碼頭鏡像,在容器中啓動一個根shell並手動進行安裝,記錄並使用它們來更新docker文件。另外,您可以運行

$搬運工EXEC -t -i慶典-i

得到容器外殼,並嘗試了需要做什麼。