zhaobu opened a new issue #267:
URL: https://github.com/apache/apisix-docker/issues/267
### Issue description
使用官方的docker-compos文件,下面这一部分
```yaml
......
apisix:
image: apache/apisix:2.11.0-alpine
restart: always
volumes:
- ./apisix_log:/usr/local/apisix/logs
- ./apisix_conf/config.yaml:/usr/local/apisix/conf/config.yaml:ro
depends_on:
- etcd
##network_mode: host
ports:
- "9080:9080/tcp"
- "9091:9091/tcp"
- "9443:9443/tcp"
- "9092:9092/tcp"
networks:
apisix:
etcd:
image: bitnami/etcd:3.4.15
restart: always
volumes:
- etcd_data:/bitnami/etcd
environment:
ETCD_ENABLE_V2: "true"
ALLOW_NONE_AUTHENTICATION: "yes"
ETCD_ADVERTISE_CLIENT_URLS: "http://0.0.0.0:2379"
ETCD_LISTEN_CLIENT_URLS: "http://0.0.0.0:2379"
ports:
- "2379:2379/tcp"
networks:
apisix:
......
```
此时对应的apisix镜像的配置文件etcd部分是这样的
```yaml
......
etcd:
host: # it's possible to define multiple etcd
hosts addresses of the same etcd cluster.
- "http://etcd:2379" # multiple etcd address
prefix: "/apisix" # apisix configurations prefix
timeout: 30 # 30 seconds
......
```
这是官方的默认配置是没有问题的.
如果把其中的etcd的部分改成下面这样
```yaml
mf_etcd:
image: bitnami/etcd:3.4.15
container_name: mf_etcd
restart: always
volumes:
- etcd_data:/bitnami/etcd
environment:
ETCD_ENABLE_V2: "true"
ALLOW_NONE_AUTHENTICATION: "yes"
ETCD_ADVERTISE_CLIENT_URLS: "http://0.0.0.0:2379"
ETCD_LISTEN_CLIENT_URLS: "http://0.0.0.0:2379"
ports:
- "2379:2379/tcp"
networks:
apisix:
```
此时对应的etcd配置应当修改为如下
```yaml
......
etcd:
host: # it's possible to define multiple etcd
hosts addresses of the same etcd cluster.
- "http://mf_etcd:2379" # multiple etcd address
prefix: "/apisix" # apisix configurations prefix
timeout: 30 # 30 seconds
......
```
此时就会启动报错

### Environment
```bash
bash-5.1# apisix version
/usr/local/openresty/luajit/bin/luajit ./apisix/cli/apisix.lua version
2.11.0
bash-5.1# uname -a
Linux b2c3fc362a79 5.10.60.1-microsoft-standard-WSL2 apache/apisix#1 SMP Wed
Aug 25 23:20:18 UTC 2021 x86_64 Linux
bash-5.1# nginx -V
nginx version: openresty/1.19.3.2
built by gcc 9.3.0 (Alpine 9.3.0)
built with OpenSSL 1.1.1g 21 Apr 2020
TLS SNI support enabled
configure arguments: --prefix=/usr/local/openresty/nginx --with-cc-opt='-O2
-DAPISIX_BASE_VER=1.19.3.2.2 -DNGX_LUA_ABORT_AT_PANIC
-I/usr/local/openresty/zlib/include -I/usr/local/openresty/pcre/include
-I/usr/local/openresty/openssl111/include' --add-module=../ngx_devel_kit-0.3.1
--add-module=../echo-nginx-module-0.62 --add-module=../xss-nginx-module-0.06
--add-module=../ngx_coolkit-0.2 --add-module=../set-misc-nginx-module-0.32
--add-module=../form-input-nginx-module-0.12
--add-module=../encrypted-session-nginx-module-0.08
--add-module=../srcache-nginx-module-0.32 --add-module=../ngx_lua-0.10.19
--add-module=../ngx_lua_upstream-0.07
--add-module=../headers-more-nginx-module-0.33
--add-module=../array-var-nginx-module-0.05
--add-module=../memc-nginx-module-0.19 --add-module=../redis2-nginx-module-0.15
--add-module=../redis-nginx-module-0.3.7 --add-module=../ngx_stream_lua-0.0.9
--with-ld-opt='-Wl,-rpath,/usr/local/openresty/luajit/lib
-Wl,-rpath,/usr/local/openresty/wasmtime-c-api
/lib -L/usr/local/openresty/zlib/lib -L/usr/local/openresty/pcre/lib
-L/usr/local/openresty/openssl111/lib
-Wl,-rpath,/usr/local/openresty/zlib/lib:/usr/local/openresty/pcre/lib:/usr/local/openresty/openssl111/lib'
--add-module=/tmp/tmp.Po19j8606M/openresty-1.19.3.2/../mod_dubbo
--add-module=/tmp/tmp.Po19j8606M/openresty-1.19.3.2/../ngx_multi_upstream_module
--add-module=/tmp/tmp.Po19j8606M/openresty-1.19.3.2/../apisix-nginx-module
--add-module=/tmp/tmp.Po19j8606M/openresty-1.19.3.2/../wasm-nginx-module
--add-module=/tmp/tmp.Po19j8606M/openresty-1.19.3.2/../lua-var-nginx-module
--with-poll_module --with-pcre-jit --with-stream --with-stream_ssl_module
--with-stream_ssl_preread_module --with-http_v2_module
--without-mail_pop3_module --without-mail_imap_module
--without-mail_smtp_module --with-http_stub_status_module
--with-http_realip_module --with-http_addition_module
--with-http_auth_request_module --with-http_secure_link_module
--with-http_random_index_module --with-http_gzip_stati
c_module --with-http_sub_module --with-http_dav_module --with-http_flv_module
--with-http_mp4_module --with-http_gunzip_module --with-threads --with-compat
--with-stream --with-http_ssl_module
bash-5.1# curl http://127.0.0.1:9092/v1/server_info
{"hostname":"b2c3fc362a79","boot_time":1641116153,"id":"b3949f69-8817-47c0-895e-25387a09adc6","up_time":383,"last_report_time":1641116512,"etcd_version":"3.5.0","version":"2.11.0"}
```
### Steps to reproduce
1. 修改etcd 的label为mf_etcd,container_name为mf_etcd
2. 修改apisix的有关etcd部分的配置文件如下
```yaml
etcd:
host: # it's possible to define multiple etcd
hosts addresses of the same etcd cluster.
- "http://mf_etcd:2379" # multiple etcd address
prefix: "/apisix" # apisix configurations prefix
timeout: 30 # 30 seconds
```
### Actual result
不能通过etcd的label名初始化
### Error log
WARNING: using fixed Admin API token has security risk.
Please modify "admin_key" in conf/config.yaml .
/usr/local/openresty/luajit/bin/luajit ./apisix/cli/apisix.lua init_etcd
Warning! Request etcd endpoint 'http://etcd:2379/version' error, host or
service not provided, or not known, retry time=1
request etcd endpoint 'http://etcd:2379/version' error, host or service not
provided, or not known
all etcd nodes are unavailable
Warning! Request etcd endpoint 'http://etcd:2379/version' error, host or
service not provided, or not known, retry time=2
/usr/local/openresty/luajit/bin/luajit ./apisix/cli/apisix.lua init
WARNING: using fixed Admin API token has security risk.
Please modify "admin_key" in conf/config.yaml .
/usr/local/openresty/luajit/bin/luajit ./apisix/cli/apisix.lua init_etcd
nginx: [error] init_by_lua error:
/usr/local/apisix/apisix/core/config_etcd.lua:787: attempt to concatenate local
'err' (a nil value)
stack traceback:
/usr/local/apisix/apisix/core/config_etcd.lua:787: in function 'init'
/usr/local/apisix/apisix/init.lua:84: in function 'http_init'
init_by_lua:9: in main chunk
### Expected result
用docker-compose的label名或者容器的container都能正确启动. 其他容器一般都能这样
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]