尝试使用docker compose文件连接redis时连接被拒绝
我在尝试使用驱动程序连接到redis时遇到问题。 这是我的尝试使用docker compose文件连接redis时连接被拒绝,docker,go,docker-compose,Docker,Go,Docker Compose,我在尝试使用驱动程序连接到redis时遇到问题。 这是我的docker compose.yml文件: version: "3" services: driver: build: ./API-Golang command: go run app.go volumes: - ./API-Golang:/app ports: - "8080:8080" depends_on: - db - redis
docker compose.yml
文件:
version: "3"
services:
driver:
build: ./API-Golang
command: go run app.go
volumes:
- ./API-Golang:/app
ports:
- "8080:8080"
depends_on:
- db
- redis
links :
- redis
- db
redis:
image: redis
container_name: redis
ports: ["6379:6379"]
db:
image: mongo:3.4.2
container_name: mongodb
ports : ["27017:27017"]
这是我尝试连接到redis的代码(API Golang/database/allSystem.go):
我曾尝试将主机的localhost
更改为redis
,但仍然不起作用。以下是错误:
driver_1 | panic: dial tcp [::1]:6379: getsockopt: connection refused
driver_1 |
driver_1 | goroutine 1 [running]:
driver_1 | github.com/Gujarats/API-Golang/database.SystemConnection(0x48)
driver_1 | /go/src/github.com/Gujarats/API-Golang/database/allSystem.go:32 +0x3d3
driver_1 | main.main()
driver_1 | /go/src/github.com/Gujarats/API-Golang/app.go:24 +0x34
driver_1 | exit status 2
知道怎么了吗
使用时需要注意以下几点:
- Dependens_on不会在启动web之前等待db和redis“就绪”——只在它们启动之前。如果需要等待服务准备就绪,请参阅以获取有关此问题的更多信息和解决策略。
- 版本3不再支持依赖的条件形式
- 使用版本3撰写文件时,将忽略“依赖”选项
取决于
不是为了顺序,我解决了这个问题,写的顺序如下:
depends_on:
- redis
- db
在此之前,我先写了它db
。不要忘记将主机更改为适当的名称,就像docker-compose.yml文件中一样。在本例中,是redis=redis
和mongodb=db
我忘了在app.go中我先给redis打电话,然后是mongodb
depends_on:
- redis
- db