尝试使用docker撰写文件连接redis时连接被拒绝
尝试使用redis-golang驱动程序连接到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):
redisConn := RedisHost{ Address: "localhost:6379", Password: "", DB: 0, } redisConnection, err := redisConn.Connect() if err != nil { panic(err) }
我已经尝试将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
任何想法有什么不对?
源代码
使用depends_on时需要注意以下几点:
- 在启动web之前,depends_on不会等待db和redis“准备就绪” – 直到它们启动。 如果您需要等待服务准备就绪,请参阅控制启动顺序以获取有关此问题的更多信息以及解决此问题的策略。
- 版本3不再支持depends_on的条件forms。
- 使用版本3撰写文件在群集模式下部署堆栈时, 将忽略depends_on选项。
这是愚蠢的,我写了depends_on
不是为了我解决写这样的命令的问题:
depends_on: - redis - db
在此之前,我先写了db
。 不要忘记像在docker-compose.yml文件中一样将主机更改为适当的名称。 在这种情况下是redis = redis
和mongodb = db
。
我忘了在app.go中,我先调用redis,然后调用mongodb。