如何 docker 化 react 应用程序
对 react 应用程序进行 docker 化可以简化您的开发工作流程,确保不同开发阶段的环境一致,并简化部署流程。本指南将引导您完成 dockerize react 应用程序的步骤,从设置 docker 环境到构建和运行 docker 映像。
先决条件
docker:确保 docker 已安装在您的计算机上。你可以到docker官网下载。
-
react 应用程序:您应该使用 create-react-app 或其他方法创建一个 react 应用程序。如果您没有,您可以使用 create-react-app 创建一个基本应用程序。
npx create-react-app my-react-app cd my-react-app
登录后复制
第 1 步:创建 dockerfile
dockerfile 是一个脚本,其中包含一系列有关如何为应用程序构建 docker 映像的说明。在 react 应用程序的根目录中,创建一个名为 dockerfile 的文件,其中包含以下内容:
# use an official node runtime as a parent image from node:16-alpine # set the working directory workdir /app # copy the package.json and package-lock.json files to the working directory copy package*.json ./ # install the dependencies run npm install # copy the rest of the application code to the working directory copy . . # build the react app run npm run build # install a simple server to serve the react app run npm install -g serve # set the command to run the server cmd ["serve", "-s", "build"] # expose port 3000 expose 3000
登录后复制
步骤 2:创建 .dockerignore 文件
.dockerignore 文件指定将文件复制到 docker 映像时应忽略哪些文件和目录。这可以帮助减小图像大小并加快构建过程。在根目录创建一个 .dockerignore 文件,内容如下:
node_modules build .dockerignore dockerfile .git .gitignore
登录后复制
第 3 步:构建 docker 镜像
要为您的 react 应用程序构建 docker 映像,请导航到应用程序的根目录并运行以下命令:
docker build -t my-react-app .
登录后复制
此命令告诉 docker 使用当前目录(.)作为上下文,构建带有 my-react-app 标签的镜像。
第 4 步:运行 docker 容器
构建 docker 镜像后,您可以使用以下命令在容器中运行它:
docker run -p 3000:3000 my-react-app
登录后复制
此命令将本地计算机上的端口 3000 映射到容器中的端口 3000,允许您在浏览器中通过 http://localhost:3000 访问 react 应用程序。
第 5 步:docker 撰写(可选)
如果你想管理多个容器或者添加更多配置,可以使用 docker compose。在根目录下创建一个 docker-compose.yml 文件,内容如下:
version: '3' services: react-app: build: . ports: - "3000:3000"
登录后复制
要启动 docker-compose.yml 文件中定义的服务,请运行以下命令:
docker-compose up
登录后复制
结论
通过执行以下步骤,您已成功对 react 应用程序进行 docker 化。对您的应用程序进行 docker 化不仅可以确保不同环境之间的一致性,还可以简化部署过程,从而更轻松地管理和扩展您的应用程序。
其他资源
- docker 文档
- react 文档
- docker compose 文档
您可以根据项目的具体需求随意定制 dockerfile 和 docker compose 配置。快乐 docker 化!
以上就是如何 Docker 化 React 应用程序的详细内容,更多请关注叮当号网其它相关文章!
文章来自互联网,只做分享使用。发布者:weapp,转转请注明出处:https://www.dingdanghao.com/article/663739.html