2016-11-17 51 views
1

所以這裏是一個Dockerfile。 https://hub.docker.com/r/kartoza/postgis/~/dockerfile/Docker知道在何處從構建Dockerfile時拉動.sh腳本?

我想在我使用這個多克爾 - 撰寫像這樣:

postgres: 

    restart: always 

    image: kartoza/postgis:9.4-2.1 

    ports: 

    - "5432:5432" 

我的問題是,如果你回到那個鏈接,並期待在Dockerfile,在它運行的最底層start_postgres.sh和其他一些sh腳本。 docker如何知道從哪裏拉出這些sh腳本?我知道有一個有腳本的Kartoza/postgis github repo,但是在Dockerfile或docker-composose中沒有任何地方可以提供或指向GitHub repo,所以我完全搞不清這些腳本從何處被取消運行我的docker-compose。

卷:

- pgdata:/var/lib/postgresql/data/ 

回答

2

上Dockerhub的Dockerfile只是爲了文檔的目的,完全GitHub庫被用來構建圖像,因此腳本都可以通過多克的build context

$ docker build https://github.com/kartoza/docker-postgis 

僅使用鏈接的Dockerfile將導致構建錯誤。

編輯:爲了澄清,Docker Hub是一個圖像存儲庫。構建的圖像可以通過Docker Hub從提供的github存儲庫上傳或構建。其他用戶可以簡單地下載(拉)這些圖像。

+0

絕對正確! – Tuan

+0

也許我不瞭解Docker的一些基礎知識。所以在我的docker-compose上面,究竟是'image'如果不僅僅是Docker Hub的Dockerfile?當我執行docker-compose構建,然後構建時,它沒有問題,postgres正在運行。 – david

+0

它從Docker Hub中提取完整映像。閱讀[image](https://docs.docker.com/compose/compose-file/#/image)和[build](https://docs.docker.com/compose/compose-file/#/構建)docker-compose文檔中的說明。如果你想擴展一個已經存在的圖像,可以使用'build';如果你只是想使用一個已經存在的圖像,可以使用'image'。 –

相關問題