1. FROM node:19-alpine as frontend: 从 Docker Hub 上的 node 镜像中拉取一个标记为 19-alpine 的版本,并将其命名为 frontend。这个镜像将用于构建前端应用程序。

  2. ARG API_HOST: 定义一个名为 API_HOST 的构建参数,它将在后面的构建步骤中使用。

  3. ARG USE_API_HOST=yes: 定义一个名为 USE_API_HOST 的构建参数,并将其默认值设置为 yes。这个参数也将在后面的构建步骤中使用。

  4. RUN mkdir -p /usr/src/app: 在容器中创建一个名为 /usr/src/app 的目录。

  5. WORKDIR /usr/src/app: 将当前工作目录设置为 /usr/src/app

  6. COPY package*.json ./: 将当前目录中的 package.jsonpackage-lock.json 文件复制到容器中的 /usr/src/app 目录中。

  7. RUN npm install: 在容器中运行 npm install 命令,安装前端应用程序所需的依赖项。

  8. COPY . .: 将当前目录中的所有文件复制到容器中的 /usr/src/app 目录中。

  9. RUN npm run build: 在容器中运行 npm run build 命令,构建前端应用程序。

  10. FROM nginx:1.19-alpine: 从 Docker Hub 上的 nginx 镜像中拉取一个标记为 1.19-alpine 的版本。这个镜像将用于运行前端应用程序。

  11. COPY --from=frontend /usr/src/app/build /usr/share/nginx/html: 从之前构建的 frontend 镜像中复制 /usr/src/app/build 目录中的文件到 nginx 镜像中的 /usr/share/nginx/html 目录中。

  12. COPY nginx.conf /etc/nginx/conf.d/default.conf: 将当前目录中的 nginx.conf 文件复制到 nginx 镜像中的 /etc/nginx/conf.d/default.conf 文件中。

解释如何使用:

  1. 将上面的 Dockerfile 文件保存在本地。

  2. 打开终端并切换到 Dockerfile 文件所在的目录。

  3. 运行以下命令来构建 Docker 镜像:

    docker build -t my-frontend-app .
    

    这将使用 Dockerfile 文件构建一个名为 my-frontend-app 的 Docker 镜像。

  4. 运行以下命令来启动 Docker 容器:

    docker run -p 80:80 -e API_HOST=my-api-host -e USE_API_HOST=yes my-frontend-app
    

    这将启动一个名为 my-frontend-app 的 Docker 容器,并将容器的 80 端口映射到主机的 80 端口。同时,它还将设置 API_HOSTUSE_API_HOST 环境变量,以便在容器中使用

Dockerfile # build frontendFROM node19-alpine as frontendARG API_HOSTARG USE_API_HOST=yes解释每一行如何使用。

原文地址: https://www.cveoy.top/t/topic/cgZk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录