2015-07-12 41 views
0

我正在嘗試在Docker容器中運行nginx和豎琴以服務我的博客。如何從Docker提供Harp/nginx頁面?

我發現這一點:https://github.com/octohost/harp-nginx

當我運行sudo docker pull octohost/harp-nginx,它的下載一堆文件,但是這是我在哪裏卡住了。

sudo docker run -d -P octohost/harp-nginx似乎沒有做任何事情。在我運行這個之後,如果我看看sudo docker -ps -a,我可以看到容器被創建,然後在1-2秒後退出。我也不知道如何查看我的網站將被投放到什麼端口。

我知道有幾種方法泊塢窗來訪問父操作系統上的文件:https://blog.docker.com/2015/04/tips-for-deploying-nginx-official-image-with-docker/

我想harp-nginx容器安裝目錄,例如~/my_blog/,並有豎琴編譯這些在運行和服務他們與nginx(在自定義端口上,因爲80已經在使用中)。我想從父操作系統中編輯~/my_blog/中的降價源,並使更改自動在網站中生效。然而我無法弄清楚如何處理上面鏈接的octohost容器。我怎樣才能完成我想要的?

+0

'泊塢窗events'是看,看不到該文檔https://docs.docker.com/reference/commandline/events/ – user2915097

+0

的第一件事@ user2915097 docker事件如何幫助我解決這個問題? – Superbest

+0

碼頭事件將「解釋」爲什麼你的容器在幾秒鐘後退出,所以你可以嘗試解決這個問題。 – user2915097

回答

1

當我運行sudo docker pull octohost/harp-nginx時,它下載了一堆文件,但這是我卡住的地方。

這些一堆文件應該是用於創建碼頭容器的碼頭圖像。

sudo docker run -d -P octohost/harp-nginx似乎沒有做任何事情。在我運行這個之後,如果我看看sudo docker -ps -a,我可以看到容器被創建,然後在1-2秒後退出。我也不知道如何查看我的網站將被投放到什麼端口。

通常情況下,你可以檢查容器的日誌,看看是什麼問題,您可以運行docker logs <container_id/container_name>

然後我們回到你的問題,似乎octohost/harp-nginx不執行任何命令,所以你應該編寫自己的Dockerfile以使用該環境。通過使用docker run --name "harp-nginx" -d -p 8080:80 my-harp-nginx

FROM octohost/harp-nginx 

WORKDIR /srv/www 

ADD . /srv/www/ 
RUN harp compile 

EXPOSE 80 

CMD nginx 

,那麼你可以通過使用docker build -t my-harp-nginx .建立自己的豎琴nginx的容器,建立成功後,您可以創建一個新的容器:從octohost/harp-nginx的回購README,你可以寫一個Dockerfile這樣

請注意,在這裏,我們映射主機8080端口容器的80端口,這樣你就可以從http://localhost:8080

訪問容器的口我想要的豎琴nginx的容器MOUN t目錄,例如〜/ my_blog /,並讓Harp隨時編譯這些目錄,並使用nginx(在自定義端口上,因爲80已經在使用)提供它們。我想在父操作系統的〜/ my_blog /中編輯降價源,並使更改自動在網站中生效。然而我無法弄清楚如何處理上面鏈接的octohost容器。我怎樣才能完成我想要的?

我不熟悉harp,所以這裏是我的理解和建議。

  • 您應該運行在主機harp compile但不是容器,只是安裝編譯靜態內容,nginx的容器,讓nginx的爲它服務。如果您這樣做,只需使用任何nginx碼頭圖像,如dockerfile/nginx,然後將您的harp輸出安裝到/var/www/html

  • 似乎harp不支持實時重新加載,所以你需要一些額外的工具來實現它。 [我不知道這個部分,只是一派]

+0

感謝您的建議。如果我理解正確,'harp compile'用於編譯靜態資產減價一次,然後提供html。但是,Harp應該能夠編譯html [按需提供](http://harpjs.com/):「* Harp智能地編譯瀏覽器需要的資源,所以它非常快速。是保存並刷新。*「也許不是'RUN harp compile',我應該使用'RUN harp server'? – Superbest

+0

@Superbest是的,如果你使用'harp server',那麼它意味着你將使用'harp'來提供你所有的內容,並且作爲http服務器而不是'nginx'。但爲了消耗性能,我想建議你使用'nginx'來爲你的網站內容提供服務。 – Freeznet

+0

啊,所以'nginx'只能在豎琴編譯成靜態HTML的時候才能提供豎琴內容? – Superbest