2015-10-16 61 views
2

我正在使用基於Go的應用程序,該應用程序正在使用碼頭引擎的碼頭集裝箱中運行。在這個容器中,我正在尋找作爲應用程序的一部分運行顛覆。我遇到的問題是,由於SSL證書問題,svn存在訪問存儲庫的問題。我已經有了一個證書文件,可以用於我嘗試訪問的svn服務器,並需要將它安裝到docker容器中,以便容器內的svn可以使用它。向碼頭集裝箱添加SSL支持

有關如何做到這一點的任何建議?我可以在dockerfile中執行此操作嗎?

回答

1

綜觀「SVN Runtime Configuration Area」,你可以指定SVN需要與財產

ssl-authority-files 

這種信任哪些證書的路徑包含證書頒發機構的證書文件分號分隔的列表(或CA)在通過HTTPS訪問存儲庫時被Subversion客戶端接受。

您將需要COPY (in your Dockerfile)

  • 證書
  • 系統配置區(/etc/subversion/servers),或每用戶配置區(~/.subversion/servers)與該屬性設置爲證書。

該服務器文件的全局部分看起來像:

[global] 
ssl-authority-files=/etc/ssl/certs/example.pem 

如果你需要信任多個證書則這可以通過將它們放置在一個分號分隔的列表來完成:

[global] 
ssl-authority-files=/etc/ssl/certs/example.pem;/etc/ssl/certs/another-example.pem 
+0

嗯...我仍然遇到問題。 我收到此錯誤信息來看嘗試運行的泊塢窗容器: 的svn:E230001:服務器SSL證書驗證失敗:發行人不被信任 這裏是我的泊塢窗文件的一個片段: '將/ etc/SSL/certs/cert1.pem /etc/ssl/certs/cert1.pem COPY /etc/ssl/certs/cert2.pem /etc/ssl/certs/cert2.pem COPY/etc/subversion/servers/etc/subversion /服務器' – Andrew

+0

@Andrew做一個docker exec yourContainer bash,看SVN(如在容器中運行)是否擁有正確的證書。按照例如http://www.microhowto.info/howto/configure_subversion_to_trust_a_given_ssl_certificate.html – VonC

+0

謝謝你。它看起來好像沒有被複制到docker根目錄的/ etc目錄中,而是被複制到docker containers上下文目錄中。任何想法如何使複製到碼頭根目錄? – Andrew