推荐答案
// www.javascriptcn.com code example ## 推荐答案 1. **创建 Dockerfile** 在 Nest.js 项目的根目录下创建一个名为 `Dockerfile` 的文件,内容如下: ```dockerfile # 使用 Node.js 官方镜像作为基础镜像 FROM node:16 # 设置工作目录 WORKDIR /app # 复制 package.json 和 package-lock.json COPY package*.json ./ # 安装依赖 RUN npm install # 复制项目文件 COPY . . # 构建应用 RUN npm run build # 暴露端口 EXPOSE 3000 # 运行应用 CMD ["npm", "run", "start:prod"]
创建 .dockerignore 文件
在项目根目录下创建一个.dockerignore文件,内容如下:node_modules .git .env
构建 Docker 镜像
在项目根目录下运行以下命令来构建 Docker 镜像:docker build -t nestjs-app .
运行 Docker 容器
使用以下命令运行 Docker 容器:docker run -p 3000:3000 nestjs-app
访问应用
打开浏览器,访问http://localhost:3000,即可看到部署的 Nest.js 应用。
// www.javascriptcn.com code example ## 本题详细解读 ### 1. Dockerfile 的作用 Dockerfile 是一个文本文件,包含了一系列的指令,用于定义如何构建 Docker 镜像。在这个例子中,Dockerfile 指定了使用 Node.js 16 作为基础镜像,设置了工作目录,安装了项目依赖,构建了应用,并最终运行了应用。 ### 2. .dockerignore 文件的作用 `.dockerignore` 文件类似于 `.gitignore`,用于指定哪些文件或目录不应该被复制到 Docker 镜像中。这样可以减少镜像的大小,并避免不必要的文件被包含在镜像中。 ### 3. 构建 Docker 镜像 `docker build -t nestjs-app .` 命令会根据当前目录下的 Dockerfile 构建一个名为 `nestjs-app` 的 Docker 镜像。`-t` 参数用于指定镜像的名称和标签。 ### 4. 运行 Docker 容器 `docker run -p 3000:3000 nestjs-app` 命令会启动一个基于 `nestjs-app` 镜像的容器,并将容器的 3000 端口映射到主机的 3000 端口。这样,你就可以通过主机的 3000 端口访问 Nest.js 应用。 ### 5. 访问应用 通过浏览器访问 `http://localhost:3000`,你可以看到部署的 Nest.js 应用。如果应用正常运行,说明 Docker 部署成功。