我正在尝试配置 Docker 以在本地开发 Angular 应用程序,并且由于我有一个数据库和一个 Node.js 应用程序,所以我正在使用 docker compose 配置它。我正在寻找一种配置,可以使用编辑器在本地进行更改,并且 Angular 应该检测到从 Docker 内部自动重新加载的更改(就像没有 Docker 时会发生的情况一样)。
我对 Docker 比较陌生,所以我的理解是使用COPYDockerfile 中的语句意味着将本地文件的副本制作到映像中,因此本地更改不会触发重新编译。我的理解是,我需要将本地应用程序安装为卷,并使其在内部可用,/app然后一切就可以正常工作了。但是,我使用的是 Mac,并且基础映像是基于 Linux 的(我正在使用FROM node:12-slim),因此必须在映像内获取并构建 npm 包。我node_modules从本地文件夹结构中删除了。
为了实现这些目标,这就是我配置 Angular Dockerfile 的方式
FROM node:12-slim
COPY package.json /app/package.json
WORKDIR /app
RUN npm install
RUN npm install -g @angular/cli@8.1.2
ENV PATH /app/node_modules/.bin:$PATH
RUN apt-get update
RUN apt-get install -y vim
RUN apt-get install -y curl
Run Code Online (Sandbox Code Playgroud)
这就是我配置docker-compose.yml文件的方式
version: '3'
services:
... other services ...
blackmirrorhq: …Run Code Online (Sandbox Code Playgroud)