Dockerfile # build frontendFROM node19-alpine as frontendARG API_HOSTARG USE_API_HOST=yes解释每一行如何使用。
-
FROM node:19-alpine as frontend: 从 Docker Hub 上的node镜像中拉取一个标记为19-alpine的版本,并将其命名为frontend。这个镜像将用于构建前端应用程序。 -
ARG API_HOST: 定义一个名为API_HOST的构建参数,它将在后面的构建步骤中使用。 -
ARG USE_API_HOST=yes: 定义一个名为USE_API_HOST的构建参数,并将其默认值设置为yes。这个参数也将在后面的构建步骤中使用。 -
RUN mkdir -p /usr/src/app: 在容器中创建一个名为/usr/src/app的目录。 -
WORKDIR /usr/src/app: 将当前工作目录设置为/usr/src/app。 -
COPY package*.json ./: 将当前目录中的package.json和package-lock.json文件复制到容器中的/usr/src/app目录中。 -
RUN npm install: 在容器中运行npm install命令,安装前端应用程序所需的依赖项。 -
COPY . .: 将当前目录中的所有文件复制到容器中的/usr/src/app目录中。 -
RUN npm run build: 在容器中运行npm run build命令,构建前端应用程序。 -
FROM nginx:1.19-alpine: 从 Docker Hub 上的nginx镜像中拉取一个标记为1.19-alpine的版本。这个镜像将用于运行前端应用程序。 -
COPY --from=frontend /usr/src/app/build /usr/share/nginx/html: 从之前构建的frontend镜像中复制/usr/src/app/build目录中的文件到nginx镜像中的/usr/share/nginx/html目录中。 -
COPY nginx.conf /etc/nginx/conf.d/default.conf: 将当前目录中的nginx.conf文件复制到nginx镜像中的/etc/nginx/conf.d/default.conf文件中。
解释如何使用:
-
将上面的 Dockerfile 文件保存在本地。
-
打开终端并切换到 Dockerfile 文件所在的目录。
-
运行以下命令来构建 Docker 镜像:
docker build -t my-frontend-app .这将使用 Dockerfile 文件构建一个名为
my-frontend-app的 Docker 镜像。 -
运行以下命令来启动 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_HOST和USE_API_HOST环境变量,以便在容器中使用
原文地址: https://www.cveoy.top/t/topic/cgZk 著作权归作者所有。请勿转载和采集!