面试题答案
一键面试- 构建Angular项目:
- 在Angular项目根目录下,确保已安装
@angular - cli
。若未安装,可通过npm install -g @angular - cli
进行安装。 - 运行
ng build --prod
命令,此命令会在项目根目录下生成dist
文件夹,里面包含生产环境优化后的构建产物。
- 在Angular项目根目录下,确保已安装
- 编写Dockerfile:
- 基础镜像选择:一般选择体积较小的Node.js镜像,例如
node:lts - alpine
。在Dockerfile开头指定基础镜像:
- 基础镜像选择:一般选择体积较小的Node.js镜像,例如
FROM node:lts - alpine
- **设置工作目录**:在容器内创建一个目录用于存放应用文件,例如:
WORKDIR /app
- **复制构建产物**:将本地Angular项目构建生成的`dist`文件夹内容复制到容器的工作目录下。假设项目构建输出目录为`dist/my - app`(根据实际项目名称替换`my - app`):
COPY dist/my - app.
- **安装依赖(若有必要)**:如果项目构建后仍需安装一些运行时依赖,可在此处使用`npm install`命令,但通常`ng build --prod`构建后的产物无需再安装依赖。若有特殊情况,示例如下:
RUN npm install
- **暴露端口**:如果Angular应用运行在某个特定端口上(例如4200),需要在Dockerfile中暴露该端口:
EXPOSE 4200
- **定义启动命令**:使用`CMD`指令定义容器启动时要执行的命令。对于Angular应用,一般是启动一个简单的静态文件服务器来提供构建后的应用。例如,使用`http - server`(需提前安装,若构建产物无需额外依赖,可省略安装步骤):
CMD ["npx", "http - server", "-p", "4200"]
- 构建Docker镜像:在包含Dockerfile的目录下,运行以下命令构建Docker镜像,将
<image - name>
替换为你想要的镜像名称,<tag>
替换为镜像标签(如latest
):
docker build -t <image - name>:<tag>.
- 运行容器:构建镜像成功后,可使用以下命令运行容器,将
<image - name>
和<tag>
替换为实际构建的镜像名称和标签,将<host - port>
替换为宿主机映射的端口(可与容器内端口相同,如4200):
docker run -d -p <host - port>:4200 <image - name>:<tag>
此时,就可以通过访问宿主机的<host - port>
端口来访问部署在Docker容器内的Angular应用。