登录
首页 >  Golang >  Go问答

将Redis主机映射到Docker Compose容器中的方法

来源:stackoverflow

时间:2024-02-09 10:03:25 391浏览 收藏

一分耕耘,一分收获!既然打开了这篇文章《将Redis主机映射到Docker Compose容器中的方法》,就坚持看下去吧!文中内容包含等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!

问题内容

我有这个简单的 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 即可运行。

我究竟做错了什么?


正确答案


问题是 bot-go 图像永远不会停止构建。将 Dockerfile 中的 RUN ./bot-go 更改为 CMD [ "./bot-go" ] ,一切都会正常工作。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《将Redis主机映射到Docker Compose容器中的方法》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>