尝试使用Docker将Angular文档网站从GitHub克隆并运行。2017年
目前,Angular文档网站的源代码似乎是在GitHub的angular/angular存储库中进行管理的。
我克隆了这些文件,并使用Docker在http://localhost:4200上进行了显示实验。
评估环境
-
- macOS Sierra 10.12.4
- Docker Community Edition Version 17.03.1-ce-mac5 (16048)
文件的放置
首先,创建一个工作目录,并在其中克隆angular/angular仓库。
mkdir docker-aio
cd docker-aio
git clone https://github.com/angular/angular.git
接下来,我们将在同一层级下配置以下5个文件。
FROM amazonlinux:latest
RUN yum update -y && yum install -y git wget
RUN wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo
RUN curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -
RUN yum install -y yarn
WORKDIR /usr/src/app
version: "2"
services:
serve:
build: .
volumes:
- .:/usr/src/app
ports:
- "4200:4200"
working_dir: /usr/src/app
command: bash serve.sh
cd /usr/src/app/angular
yarn install
cd /usr/src/app/angular/aio
yarn
cd /usr/src/app/angular/aio
yarn docs
yarn start -- --host 0.0.0.0
cd /usr/src/app/angular/aio
yarn docs-watch
在这个任务中,docker-aio目录的根目录将处于以下状态。
angular
Dockerfile
docker-compose.yml
setup.sh
serve.sh
watch.sh
使用方式
首先进行设置
在docker-aio目录中打开终端,并执行以下命令。
docker-compose run serve bash setup.sh
启动服务
在docker-aio目录下打开终端,并执行以下命令。
docker-compose up
当处理完成后,如果以下文本在终端输出,则可以在浏览器中访问http://localhost:4200。
serve_1 | webpack: Compiled successfully.
现在公开的网站和从GitHub克隆下来的网站的设计有所不同。
文件在更改时自动重新生成文档
除了启动服务的终端窗口外,您可以打开一个新的终端窗口,在docker-aio目录下执行以下命令,以便监视文件更改并重新生成文档。
docker-compose run serve bash watch.sh
所有的内容都以Markdown格式在angular/aio/content文件夹下的*.md文件中进行描述。
当这些文件被修改时,文档会自动重新生成。
但是,根据README.md里所述,似乎在重新生成时可能会出现一些链接或代码示例等部分显示不正确的情况。
但它无法生成完全忠实的内容。例如,指向其他文档和代码示例的链接可能无法正确显示。
暂停服务
您可以打开一个新的终端窗口,并在docker-aio目录中执行以下命令来停止服务。
docker-compose stop
关于消息
由于安装了没有指定版本的Node.js、npm或yarn,因此显示了以下类似的消息,这是因为安装了比推荐版本更新的版本。
如果遇到问题,请修改Dockerfile并指定版本。
serve_1 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
serve_1 | !!! Your environment is not in a good shape. Following issues were found:
serve_1 | !!! - You are running unsupported yarn version. Found: 0.23.4 Expected: >=0.21.3 <0.22.0. This is required if you want to work on certain areas, such as `aio/` and `integration/`. See: https://yarnpkg.com/lang/en/docs/install/
serve_1 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!