使用Docker试用Angular

首先

这是一篇为了在公司内讲解Angular而创建的文章。本文将解释如何使用Docker来尝试Angular而不污染环境。

本文撰写时使用的版本是 Angular 6.1。

Docker环境将预先准备好。

准备与Docker相关的文件。

目录结构如下。

.
├── Dockerfile
└── docker-compose.yml

准备一个Dockerfile。

FROM node:10.8.0-stretch

RUN npm install -g @angular/cli && ng config -g cli.packageManager yarn
WORKDIR /projects

我选择的 Node.js 版本不是当前的 LTS 版本,而是未来的 LTS 版本,即版本 10 系列。为了确保文章中所述的可复现性,我详细指定了版本直到 10.8.0。在选择版本范围内,您可以根据要使用的 Angular 版本自行选择。

选择“stretch”是因为它最初就是一个功能齐全的开发环境,这样会更加方便。

我已经选择了yarn作为Angular使用的包管理器。

只用Docker命令就可以处理容器,但为了更方便,我们会使用Docker-compose。

准备一个docker-compose.yml文件。

version: '3'

services:
  node:
    build: .
    ports:
      - "4200:4200"
    volumes:
      - ".:/projects"
    tty: true

端口号4200是Angular开发服务器使用的。
为了使当前目录在容器的/projects目录中可见,进行了卷指定。
由于此容器不启动任何服务,因此需要指定tty: true,否则容器在启动时会立即退出,请注意。

在Docker容器上进行工作。

在包含docker-compose.yml的目录中运行以下命令,创建并启动Docker容器。由于首次需要构建镜像,所以可能会花费一些时间。

docker-compose up -d

当您启动后,您可以通过以下方法进入控制台。

docker-compose exec node bash

如果你不想使用根目录,请使用以下选项。我们使用预先存在的 node 用户。

docker-compose exec --user=node node bash

退出控制台后,执行以下步骤以停止容器。

docker-compose down

尝试使用Angular

Angular有官方的日语版,并且教程和参考资料也非常齐全。请参考”创建Angular 6项目后首先要做的事情”。

请注意,在启动开发服务器时需要加上参数–hots=0.0.0.0才能从容器外部访问。

ng serve --host=0.0.0.0

只使用 ng serve 的话,只能从本地主机上访问,因为对于Docker容器而言,本地主机也是指容器本身,并且主机端变成了外部。

总结

我建立了一个可以进行Angular开发的Docker环境。现在你可以轻松地尝试Angular而不必担心污染你的开发环境。