我们的 Analyzer 以 Docker 镜像的形式部署。
请先阅读通用的工具 Docker 说明,了解它们的工作方式。
当我们运行 Analyzer 来分析一份解答时,执行的 Docker 命令如下:
docker run \
--rm \
--network none \
--mount type=bind,src="${solution_dir}",dst=/solution \
--mount type=bind,src="${output_dir}",dst=/output \
--tmpfs /tmp:rw \
"exercism/${track_slug}-analyzer" \
"${exercise_slug}" "/solution" "/output"
可以看到,我们向该 Docker 镜像传入了三个实参:
我们所有 Analyzer 在实现时都遵循以下约定:
Dockerfile 位于代码仓库的根目录。/opt/analyzer。/opt/analyzer/bin/run.sh
/opt/analyzer/bin/run.sh 脚本接收 3 个实参:
更多信息请参见接口。
新的 analyzer 代码仓库默认会采用这些约定。