簡體   English   中英

使用Docker在OS X上進行前端開發並從主機到容器通過ENV的最佳實踐是什么

[英]What is the best practices of using Docker for front end development on OS X and passthrough ENV from host to container

我正在尋找有關使用docker在OSX上進行前端開發的最佳實踐,並且在github上找到了許多項目。 他們來了:

  • docker-osx-dev
  • boot2docker-xhyve
  • 黃豆
  • docker-unison
  • 霍多爾

事實是,我需要通過已掛載(已同步)的文件夾將文件從主機系統雙向同步到虛擬容器,反之亦然,並且IO性能應類似於本機。 因此,我不考慮共享文件夾FS,例如vboxsf和vmhgfs。 此外,還需要在共享文件夾中具有一些具有正常工作能力的構建工具(gulp等)。 您如何看待xhyve(使用NFS)而不是VirtualBox? 誰嘗試過統一,docker提供的性能如何?

最后,我有一個特殊的任務,如果可能的話,我想通過nodejs通過主機到容器ENV運行app.js。 換句話說,我必須將PATH的ENV變量添加到我的〜/ .bash_profile中的nodejs(在虛擬容器中)。 是否有機會完全從主機到容器通過NODE_PATH? 謝謝。

不確定“最佳實踐”是否在征求意見(這違反SO政策),請注意,這在很大程度上還取決於您的工具鏈。

我不喜歡boot2docker,因為它到目前為止可以工作(盡管它可能會有所改進,並且從長遠來看可能是最好的方法,因為它是docker團隊維護的官方方法)。

編輯:boot2docker已停產,並由Docker Machine取代,該Docker Machine做了幾乎相同的事情,但以更通用的方式,允許您在本地,LAN或雲中管理Docker守護程序。

對我而言,我使用Windows,但是我面臨着與OSX開發人員相同(甚至更多)的困難。 當我使用Hyper-V時,boot2docker(VirtualBox)無法運行,所以我必須自己動手。 另外,上次我嘗試使用boot2docker-它運行TinyCoreLinux,這是我必須學習的另一個Linux發行版,而我的重點是雲中的CoreOS,所以我寧願只關注CoreOS。

設置開發人員的目標如下:

  • 擁有對docker主機(在VM或LAN中)具有安裝權的ssh訪問:這對我來說是Hyper-V上的CoreOS。
  • 有一個本地export DOCKER_HOST=<ip or hostname here>客戶端並export DOCKER_HOST=<ip or hostname here>
  • mount /mnt/from/host工作目錄mount /mnt/from/host到您的docker主機中以進行實時重新加載:這可以通過CoreOS上的mount.cifs來使用,並帶有systemd單元。
  • 使dev.Dockerfile滿足您的開發需求,如果您是節點開發人員,請從節點映像開始,npm安裝gulp / browserify / ..無論您需要什么作為項目的基礎映像,以及docker build -f dev.Dockerfile -t my_dev_container .
  • docker run -it -v /mnt/from/host/:/src/app/ -e my_dev_container

現在,您處於具有完全隔離環境的終端中,可以將其置於源代碼控制下並在項目成員之間進行復制,並具有完整的實時重新加載功能。

缺點:如果您依賴IDE中的REPL或intelliSense,則必須具有可以使用遠程服務器的IDE。 或者,您必須在dev容器(cloud9或使用X服務器)中運行IDE。

當然,如果您生活在碼頭並精通vim,那您就很好了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM