通过docker-compose构建kong容器服务的问题
来源:1-1 什么是api网关
我是陈校长
2023-12-23 21:31:54
老师,我通过您提供的docker-compose部署的kong容器,自己在compose文件中增加了consul容器,但是在kong.conf中设置dns_resolver的时候出现了问题。
起初,我想通过consu容器名称(consul)设置 dns_resolver=consul:8600,因为在同一network下,可以通过容器名称访问容器的服务,但是kong启动时候会报错。
后来,我因为我consul容器8600端口已经映射到我本地环境,我通过设置dns_resolver=本地ip:8600,仍然报错。
再次,我通过docker-compose文件,把consul容器的ip地址固定为:172.100.100.100,再次设置dns_resolver= 172.100.100.100:8600,但启动kong容器时扔报错。
请老师帮忙解答~
谢谢
我的docker-compose内容:
version: '3'
services:
kong-database:
image: postgres:12
container_name: kong-database
ports:
- 5432:5432
environment:
- POSTGRES_USER=kong
- POSTGRES_DB=kong
- POSTGRES_PASSWORD=kong
networks:
kong-net:
ipv4_address: 172.100.100.103
volumes:
- "db-data-kong-postgres:/var/lib/postgresql/data"
kong-migrations:
image: kong
environment:
- KONG_DATABASE=postgres
- KONG_PG_HOST=kong-database
- KONG_PG_PASSWORD=kong
- KONG_CASSANDRA_CONTACT_POINTS=kong-database
command: kong migrations bootstrap
restart: on-failure
networks:
- kong-net
depends_on:
- kong-database
consul:
image: 'consul:1.15.4'
container_name: consul
ports:
- 8500:8500
- "8600:8600/udp"
networks:
kong-net:
ipv4_address: 172.100.100.100
kong:
image: kong
container_name: kong
environment:
- LC_CTYPE=en_US.UTF-8
- LC_ALL=en_US.UTF-8
- KONG_DATABASE=postgres
- KONG_PG_HOST=kong-database
- KONG_PG_USER=kong
- KONG_PG_PASSWORD=kong
- KONG_PROXY_ACCESS_LOG=/dev/stdout
- KONG_ADMIN_ACCESS_LOG=/dev/stdout
- KONG_PROXY_ERROR_LOG=/dev/stderr
- KONG_ADMIN_ERROR_LOG=/dev/stderr
- KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl
- KONG_PROXY_LISTEN=0.0.0.0:8000, 0.0.0.0:8443 ssl
- CONSUL_HOST=consul
volumes:
- "./kong:/etc/kong"
restart: on-failure
ports:
- 8000:8000
- 8443:8443
- 8001:8001
- 8444:8444
links:
- kong-database:kong-database
networks:
kong-net:
ipv4_address: 172.100.100.102
depends_on:
- kong-database
- consul
konga:
image: pantsel/konga
ports:
- 1337:1337
links:
- kong:kong
container_name: konga
environment:
- NODE_ENV=production
networks:
kong-net:
ipv4_address: 172.100.100.101
volumes:
db-data-kong-postgres:
networks:
kong-net:
driver: bridge
ipam:
config:
- subnet: "172.100.100.0/24"
1回答
bobby
2023-12-25
这里最好完全按照课程的讲解方式来配置。不要使用其他的方式,这个地方我当时也试过好多次 最后按照课程的方式才成功的
相似问题