[英]How to host React app with live reload with Nginx in Docker
[英]Developing NodeJS app using Docker with live reload
我正在開發一個使用webpack
服務器的webpack
應用程序。 Webpack
服務器配置為負責自動文件重新加載。 我希望將其作為卷安裝,這樣,每次更改代碼時都無需重建映像。 我希望node_modules
文件夾在映像中可用,這樣就不必在每次啟動容器時都獲取模塊。
實際上,源代碼和node_modules
應該處於相同的層次結構級別。 但是問題是當我對源代碼進行卷掛載時,由於將使用卷掛載路徑,因此會缺少node_modules
(因為它是映像的一部分)。 有什么辦法可以使這件事起作用?
我很清楚這個問題!
當您掛載卷時,它會刪除容器中掛載的目錄內的文件(從技術上講,它不會刪除它們,但出於我們的目的,它會刪除)。 這是因為文件是BUILD的一部分,而不是RUN的一部分。
有3個修復程序:
1-不是在構建時進行npm install
,而是在運行時進行-例如,在執行docker run
命令時。 主機將可以在運行時在已安裝目錄中創建容器文件。
ENTRYPOINT npm install (something like that)
2-在構建過程中將文件復制到其他位置(例如/ temp / node_modules),然后在運行時將其復制回
ENTRYPOINT scriptToCopyFilesBackIntoNodeModules.sh
如果需要從主機訪問,則應使用前兩個中的任何一個。 如果您需要從另一個容器訪問,請使用volumes_from
可以簡單地使用上述任何變通辦法。
container1:
volumes: /node_modules
container2:
volumes_from: container1
就是這樣-上面的語法是docker-compose語法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.