【发布时间】:2022-11-12 23:01:07
【问题描述】:
我有这个简单的docker-compose.yml 文件:
version: '3.8'
services:
bot:
build:
dockerfile: Dockerfile
context: .
links:
- redis
depends_on:
- redis
redis:
image: redis:7.0.0-alpine
ports:
- "6379:6379"
environment:
- REDIS_REPLICATION_MODE=master
restart: always
volumes:
- cache:/data
command: redis-server
volumes:
cache:
driver: local
这就是bot(在 Go 中)连接到redis 的方式:
import "github.com/go-redis/redis/v8"
func setRedisClient() {
rdb = redis.NewClient(&redis.Options{
Addr: "redis:6379",
Password: "",
DB: 0,
})
}
bot Dockerfile:
FROM golang:1.18.3-alpine3.16
WORKDIR /go/src/bot-go
COPY . .
RUN go build .
RUN ./bot-go
但是当我运行docker-compose up --build 时,我总是得到:
panic: dial tcp: lookup redis on 192.168.65.5:53: no such host
无论我对主机或docker-compose 文件进行什么更改,redis 主机都不会出现。
当我将客户端配置为本地时,该应用程序确实可以在没有 Docker 的情况下工作。
我到底做错了什么?
【问题讨论】:
-
请包括您在计算机上运行的操作系统版本。 docker 本身可能存在一些问题。这并不总是你的错。
-
@DiptoMondal 很高兴知道 Docker 版本很重要。但 Kaleab 为我解决了这个问题。谢谢!
-
是的,苹果硅的 docker-desktop 中可能存在一些问题。
标签: go docker-compose redis