在 Mac 上构建开发环境

如果你希望快速的在你的 Mac 平台上构建和开发 APISIX,你可以参考本教程。

在 Mac 上构建开发环境 - 图1note

本教程适合需要在 Mac 平台快速开始入门阶段开发的情况,如果你想要更进一步,有更好的开发体验,更好的选择是 Linux-based 虚拟机,或是直接使用这类系统作为你的开发环境。

你可以在这里看到具体支持的系统。

快速构建 Apache APISIX 开发环境

实现思路

我们通过 Docker 来构建 Apache APISIX 的测试环境,在容器启动时将 Apache APISIX 的源代码挂载到容器内,就可以做到在容器内构建以及运行测试用例。

实现步骤

首先,我们需要拉取 APISIX 源码,并构建一个可以运行测试用例以及编译运行 Apache APISIX 的镜像:

  1. git clone https://github.com/apache/apisix.git
  2. cd apisix
  3. docker build -t apisix-dev-env -f example/build-dev-image.dockerfile .

然后,我们要启动 Etcd:

  1. docker run -d --name etcd-apisix --net=host pachyderm/etcd:v3.5.2

挂载 APISIX 目录并启动开发环境容器:

  1. docker run -d --name apisix-dev-env --net=host -v $(pwd):/apisix:rw apisix-dev-env:latest

最后,构建 Apache APISIX 运行时并配置测试环境:

  1. docker exec -it apisix-dev-env make deps
  2. docker exec -it apisix-dev-env ln -s /usr/bin/openresty /usr/bin/nginx

启动和停止 APISIX

  1. docker exec -it apisix-dev-env make run
  2. docker exec -it apisix-dev-env make stop
在 Mac 上构建开发环境 - 图2note

如果你在运行 make run 时收到类似 nginx: [emerg] bind() to unix:/apisix/logs/worker_events.sock failed (95: Operation not supported) 的错误消息,请使用此解决方案。

更改你的 Docker-Desktop 的 File Sharing 设置:

Docker-Desktop File Sharing 设置

修改为 gRPC FUSEosxfs 都可以解决此问题。

运行指定测试用例

  1. docker exec -it apisix-dev-env prove t/admin/routes.t