apisix 容器安装

1. 按照官方文档进行docker容器安装,安装完成后启动报错,关键错误日志如下:

apisix | 2023/05/25 06:36:35 [error] 7#7: *205 [lua] resolver.lua:80: parse_domain(): failed to parse domain: etcd-server, error: failed to query the DNS server: dns server error: 3 name error, context: ngx.timer
apisix | 2023/05/25 06:36:35 [warn] 7#7: *205 [lua] v3.lua:245: _request_uri(): http://etcd-server:2379: failed to parse domain: failed to query the DNS server: dns server error: 3 name error. Retrying, context: ngx.timer
...
apisix | 2023/05/25 06:36:36 [error] 34#34: *115 [lua] config_etcd.lua:628: no healthy etcd endpoint available, next retry after 8s, context: ngx.timer

2. 查阅官方Issue

  https://github.com/apache/apisix/issues/8800,若是luaJit的bug,已经修复。然后按照官方文档 安装最新版apisix-3.3.0,依然报错。按照Issue中的说法,需要自己rebuild的apisix-base. 

 3. 然后下载apisix-build-tools,在虚拟机中进行build

4. 整个build过程是在docker容器中进行,并需要不断从互联网下载各种包、库以及github代码,而且需要容器能够连接互联网(需梯子)。

  build之前需要修改构建脚本添加VPN代理:

   修改build-apisix-base.sh,在开始从github仓库下载代码之前,添加VPN代理:  

export https_proxy=http://192.168.144.129:7890 http_proxy=http://192.168.144.129:7890 all_proxy=socks5://192.168.144.129:7890

    export https_proxy=http://192.168.144.129:7890 http_proxy=http://192.168.144.129:7890 all_proxy=socks5://192.168.144.129:7890

    192.168.144.129为运行VPN软件的宿主机的IP地址,你的虚拟机要能够访问到(即虚拟机与宿主机需要互通)。

  在 cd grpc-client-nginx-module-${grpc_client_nginx_module_ver} || exit 1 这一行后面,添加如下代码:

sed -i '/#!\/usr\/bin\/env\sbash/a\export https_proxy=http://192.168.144.129:7890 http_proxy=http://192.168.144.129:7890 all_proxy=socks5://192.168.144.129:7890' install-util.sh
sed -i '/install-util.sh\sinstall_go/a\\tPATH="$(PATH):/usr/local/go/bin" go env -w GOPROXY=https://goproxy.io,direct' Makefile

  第一行是在install-util.sh中添加代理,第二行是为go设置环境变量GOPROXY (go语言下载包时使用的代理)

5. 执行构建:

  make package type=rpm app=apisix-base version=1.21.4.1.8 image_base=centos image_tag=7

  注意:version参数,必须与apisix-3.3.0 依赖的版本一致,不一致会导致rpm包无法安装。

posted @ 2023-05-25 14:43  小张同学哈  阅读(498)  评论(0编辑  收藏  举报