Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试使用docker compose文件连接redis时连接被拒绝_Docker_Go_Docker Compose - Fatal编程技术网

尝试使用docker compose文件连接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

我在尝试使用驱动程序连接到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