簡體   English   中英

如何僅使用 docker 而不是主機直接創建 react-app?

[英]How to create react-app using directly only docker instead of host?

我正在使用 Docker 創建新的 Reactjs 應用程序,我想在不將 Node.js 安裝到主機系統的情況下創建新實例。 我看過很多教程,但每次第一步都是將 Node.js 安裝到主機,初始化應用程序,然后設置 Docker。 我遇到的問題是官方的 Node.je Docker 鏡像專為運行應用程序而設計,而不是像分離的容器一樣運行,因此我無法使用容器命令行進行初始安裝。 我正准備基於任何 linux 發行版創建映像並自己安裝 Node.js,但是使用這些方法我無法利用准備好的 Node.js 官方映像的優勢。 是否存在任何選項如何在不將 Node.js 安裝到主機系統的情況下使用 Docker 初始化 React 應用程序? 謝謝你

編輯:基於 od @David Maze 回答我決定使用 docker-compose,只需將項目目錄掛載到容器並將command: ["sleep", "infinity"]放入 docker-compose 文件。 所以我不需要安裝 Node.js 來托管,我可以像往常一樣在項目文件夾中從容器命令行管理一切。 我沒有解決任何共享的全局緩存,但我不確定是否需要它,因為不同版本的 npm 沖突,如果我將有更多版本的節點容器。 也許有一天我嘗試將它像卷一樣從主機中的某個全局位置安裝到容器中,但是磁盤空間不是那么大的問題......

你應該能夠運行類似的東西:

sudo docker run \
  --rm \
  -it \
  -u$(id -u):$(id -g) \
  -w/ \
  -v"$PWD":/app \
  node:10 \
  npx create-react-app app

每次您想要使用 Docker 打包版本的 Node.js 執行任何操作時,您都必須重復這一系列 Docker 選項。

最終這一系列事情從容器根目錄( -w/ )開始,並使用 create-react-app 創建一個app目錄; -v選項由主機上的當前目錄支持,並且需要-u選項來使文件系統權限對齊。 -it選項使其能夠回答互動問題, --rm導致容器后自己清理。

我懷疑你會發現只安裝 Node.js 會容易得多。

暫無
暫無

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

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