2016-12-01 44 views

回答

6

目前沒有辦法做到這一點。有關於向Docker添加--ignore標誌以提供忽略文件以供使用的冗長討論 - 請參閱here

你此刻的選項大多是醜陋:

  • 拆分項目進入子目錄中每個人都有自己Dockerfile.dockerignore,這可能會在你的情況下無法正常工作。
  • 創建一個腳本,將相關文件複製到臨時目錄並在那裏運行Docker構建。
0

另一種選擇是進一步構建包含測試的過程。我這樣做的方式是:

如果測試是單元測試然後我創建一個新的Docker圖像,從主項目圖像派生;我只是堅持頂部FROM,然後ADD測試,再加上任何所需的工具(在我的情況下,mocha,chai等)。這個新的「測試」圖像現在包含這兩個測試和要測試的原始來源。它可以直接運行,也可以在「監視模式」下運行,並將卷映射到主機上的源和測試目錄。

如果測試集成測試 ----例如初級圖像可能是GraphQL服務器 - 然後我創造的形象是自包含的,即不是從初級圖像導出(它仍然包含了測試和工具,當然)。我的測試使用環境變量來告訴他們在哪裏找到需要測試的端點,並且很容易讓Docker Compose調用這兩個一個容器使用主映像,另一個容器使用集成測試映像,並設置環境變量,以便測試套件知道要測試什麼。

0

將已清理的測試作爲卷裝入添加到容器可能是此處的一個選項。在生成映像之後,如果運行它進行測試,請將包含測試的源代碼安裝在清理後的代碼上。

services: 
    tests: 
     image: my-clean-image 
     volumes: 
     - '../app:/opt/app' # Add removed tests 
相關問題