插件窝 干货文章 如何 Docker 化 React 应用程序

如何 Docker 化 React 应用程序

docker react 应用程序 class 752    来源:    2024-10-22

如何 docker 化 react 应用程序

对 react 应用程序进行 docker 化可以简化您的开发工作流程,确保不同开发阶段的环境一致,并简化部署流程。本指南将引导您完成 dockerize react 应用程序的步骤,从设置 docker 环境到构建和运行 docker 映像。

先决条件

  1. docker:确保 docker 已安装在您的计算机上。你可以到docker官网下载。

  2. 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 化!