2017-04-04 60 views
1

我正在嘗試創建一個基於CentOS 7的Docker容器,這個容器將託管R,shiny-server和rstudio-server,但是爲了服務我需要systemd開始。我可以使用啓用systemd的centos映像作爲基礎,但是我需要以特權模式運行容器並允許訪問主機上的/ sys/fs/cgroup。我可能能夠容忍較不安全的情況,但是我無法與在Windows或Mac上運行Docker的用戶共享容器。CentOS 7中的服務沒有systemd的Docker鏡像

我發現這個問題,但它是2歲,似乎並沒有任何解決方案。

任何提示或替代方案表示讚賞。

UPDATE:SUCCESS!

下面是我發現的:對於閃亮服務器,我只需要使用命令行中的相應參數執行shiny-server。我將適當的調用捕獲到一個腳本文件中,並使用我的Dockerfile中的最終CMD行進行調用。

rstudio-server比較棘手。首先,我需要安裝initscripts來獲得依賴關係,以便一些第一個音頻文件可以工作。在此之後,執行rstudio-server start基本上什麼都不做,並且不會提供任何錯誤。我通過各種鏈接跟蹤調用,發現自己位於/ usr/lib/rstudio-server/bin/rstudio-server中。 daemonCmd()函數測試cat/proc/1/comm來確定如何啓動服務器。由於某種原因,它失敗了,但看着腳本,似乎很清楚,它需要執行/etc/init.d/rstudio-server start。如果我手動或在Docker CMD行中這樣做,它似乎工作。

我已經採取了這兩個CMD線的要求,並將它們放入sh腳本,從Dockerfile中的CMD行調用。

有點破解,但還不錯。我很高興聽到任何其他建議。

+1

_why_你需要systemd嗎? – jaxxstorm

+0

shiny-server和rstudio-server需要systemd以便在安裝時啓用和啓動服務。有沒有辦法讓我在沒有systemd的情況下啓動這種服務?我嘗試了init,但它似乎有其他系統依賴項,我無法解決。 – KirkDCO

回答