繁体   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