当前位置: 首页 > wzjs >正文

动易视频网站管理系统上海搜索引擎优化公司排名

动易视频网站管理系统,上海搜索引擎优化公司排名,seo网站查询工具,工信部备案查询系统使用 Docker 搭建 Go Web 应用开发环境及常用中间件配置详解 本指南介绍如何用 Docker 和 Docker Compose 构建 Go Web 应用(如 gin/gorilla/mux/echo 等)开发环境,并集成常用中间件服务(MySQL、Redis、Kafka)。适合个…

使用 Docker 搭建 Go Web 应用开发环境及常用中间件配置详解

本指南介绍如何用 Docker 和 Docker Compose 构建 Go Web 应用(如 gin/gorilla/mux/echo 等)开发环境,并集成常用中间件服务(MySQL、Redis、Kafka)。适合个人开发、本地测试与团队协作。

一、目录结构建议

project-root/
├── app/                      # Go 应用源码目录
│   ├── Dockerfile
│   ├── go.mod
│   ├── go.sum
│   └── main.go
├── docker-compose.yml        # Compose 主配置
├── mysql-data/               # MySQL 数据卷
├── redis-data/               # Redis 数据卷
└── .env                      # 环境变量(如端口、密码,勿提交敏感数据)

二、Go 应用 Dockerfile 示例

# app/Dockerfile
FROM golang:1.22-alpine AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN go build -o server .FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/server .
EXPOSE 8080
CMD ["./server"]

说明

  • 多阶段构建,减小最终镜像体积,只保留可执行文件。
  • 编译参数可按需优化(如开启热重载开发可参见下文扩展)。

三、docker-compose.yml 配置详解

version: "3.9"
services:app:build:context: ./appdockerfile: Dockerfilecontainer_name: go-web-appports:- "8080:8080"environment:MYSQL_DSN: devuser:devpass@tcp(mysql:3306)/devdb?parseTime=trueREDIS_ADDR: redis:6379KAFKA_BROKERS: kafka:9092depends_on:- mysql- redis- kafkavolumes:- ./app:/app   # 方便本地开发热更新mysql:image: mysql:8.0container_name: mysqlrestart: alwaysports:- "3306:3306"environment:MYSQL_ROOT_PASSWORD: rootpassMYSQL_DATABASE: devdbMYSQL_USER: devuserMYSQL_PASSWORD: devpassvolumes:- ./mysql-data:/var/lib/mysqlredis:image: redis:7container_name: redisrestart: alwaysports:- "6379:6379"volumes:- ./redis-data:/datazookeeper:image: bitnami/zookeeper:3.8container_name: zookeeperenvironment:- ALLOW_ANONYMOUS_LOGIN=yesports:- "2181:2181"kafka:image: bitnami/kafka:3.5container_name: kafkadepends_on:- zookeeperenvironment:KAFKA_BROKER_ID: 1KAFKA_CFG_ZOOKEEPER_CONNECT: zookeeper:2181KAFKA_CFG_LISTENERS: PLAINTEXT://:9092KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092ALLOW_PLAINTEXT_LISTENER: "yes"ports:- "9092:9092"

说明

  • 各服务通过服务名(如 mysql、redis、kafka)互联,Go 应用连接参数直接用服务名作为 host。
  • depends_on 保证启动顺序,实际服务可用性建议 Go 应用内实现重试机制。
  • 数据卷挂载避免数据丢失,勿将数据卷加入 git。

四、运行流程

  1. 开发环境依赖准备

    • 保证 Docker、docker-compose 已安装
  2. Go 应用依赖安装与编译

    cd app
    go mod tidy
    cd ..
    
  3. 启动所有服务

    docker compose up -d --build
    
  4. 查看服务状态和日志

    docker compose ps
    docker compose logs -f app
    
  5. 访问应用

    • 访问 http://localhost:8080

五、Go 应用中间件连接配置示例

// MySQL
dsn := os.Getenv("MYSQL_DSN") // devuser:devpass@tcp(mysql:3306)/devdb?parseTime=true// Redis
redisAddr := os.Getenv("REDIS_ADDR") // redis:6379// Kafka (github.com/segmentio/kafka-go)
kafkaBrokers := strings.Split(os.Getenv("KAFKA_BROKERS"), ",") // []string{"kafka:9092"}
  • 连接配置建议全部用环境变量,便于多环境切换和 CI/CD。

六、常见注意事项

  1. 端口冲突

    • 若本地已启用 MySQL/Redis/Kafka,请调整 compose 暴露端口或关闭本地服务。
  2. 服务可用性与重试

    • depends_on 只保证启动顺序,不保证服务就绪,Go 应用应有重试机制(如数据库、Kafka 连接失败自动重试)。
  3. 数据持久化

    • 数据卷挂载防止数据丢失,勿将数据卷目录加入代码仓库(加入 .gitignore)。
  4. 配置安全

    • 推荐敏感信息通过 .env 文件或环境变量注入,勿提交真实密码到仓库。
  5. Kafka 配置

    • Kafka 依赖 Zookeeper,生产环境建议加强网络隔离与鉴权。
  6. 开发热更新(可选)

    • 开发阶段可用 air 或 fresh 实现代码热重载。
    • Dockerfile 示例(开发模式):
      FROM golang:1.22-alpine
      WORKDIR /app
      COPY . .
      RUN go install github.com/cosmtrek/air@latest
      CMD ["air"]
      
    • volumes 挂载 ./app:/app 以同步本地代码修改。
  7. 健康检查与监控

    • 可在 compose 中为各服务配置 healthcheck。
    • 推荐接入 Prometheus/Grafana 做资源与服务监控。

七、参考资料

  • Go 官方文档
  • Docker Compose 官方文档
  • GORM MySQL 连接
  • Go Redis 客户端
  • segmentio/kafka-go
  • Bitnami Kafka 镜像说明

文章转载自:

http://ZphsQoS8.fbfnk.cn
http://pi1oycBQ.fbfnk.cn
http://QVFj9rzB.fbfnk.cn
http://Y1Y08m0f.fbfnk.cn
http://SHoXl99c.fbfnk.cn
http://S4GNfsAx.fbfnk.cn
http://FpypaYDv.fbfnk.cn
http://7TxBV6zx.fbfnk.cn
http://h555G91T.fbfnk.cn
http://Jof40ro9.fbfnk.cn
http://3a9Be51W.fbfnk.cn
http://g7vS0HnO.fbfnk.cn
http://xEpOPx6O.fbfnk.cn
http://D9xeIxVv.fbfnk.cn
http://hIZAdK7t.fbfnk.cn
http://jg5WxXO9.fbfnk.cn
http://Ic3CC4o3.fbfnk.cn
http://rnau5nnJ.fbfnk.cn
http://jijvTA5p.fbfnk.cn
http://W0xigNAe.fbfnk.cn
http://gZBtEvQq.fbfnk.cn
http://tLN3p9hW.fbfnk.cn
http://3uNem7Bl.fbfnk.cn
http://e23b1Q4g.fbfnk.cn
http://rDAjrvnw.fbfnk.cn
http://4CE9al6m.fbfnk.cn
http://RcERGlNt.fbfnk.cn
http://nsFvnz7G.fbfnk.cn
http://ybRqrtVS.fbfnk.cn
http://SgTD5BPc.fbfnk.cn
http://www.dtcms.com/wzjs/749712.html

相关文章:

  • 中国建设银行网站公积金查询余额排版设计招聘
  • 秦皇岛建设工程百度seo优化网站
  • 重庆网站排名提升湖州注册公司
  • 苏州seo整站优化永久有效域名
  • 上传网站视频要怎么做才清楚wordpress 获取菜单id
  • 上孩做网站湖州网站集约化平台
  • 哪些网站是做婴童辅食招商的网上报建贵州建设局网站
  • 学习网站建设要什么学历重庆建站公司价钱
  • js网站建设辣妹子影院电视剧免费播放
  • 中国建设工程协会标准网站diy图片在线制作
  • 企业网站 dede phpcms 帝国app怎么查网站备案
  • wordpress棋牌主题排名优化培训
  • 龙岗网站优化公司案例新冠数据实时更新
  • 绵阳 网站建设肥乡网站建设
  • 常州网站制作公司西安优秀的集团门户网站建设企业
  • 团队如何分工做网站网站建设刂搜金手指下拉二五
  • 股票网站模板 dedecms苏州门户网站建设
  • 免费图标下载网站常州微信网站建设
  • 渭南专业做网站杭州比较好的景观设计公司
  • 有什么设计网站开发公司岗位职责
  • 网站后台忘记账号密码厦门在哪个网站做用工报备
  • 栾城做网站湖州网站设计浙北数据
  • 替老外做网站凡科登陆
  • 巨鹿做网站哪家好网站整站
  • 网站源码绑定域名处理国外做的比较好的购物网站
  • 网站建设与网页制作的实验目的信阳市商务局网站加油站建设公告
  • 湖州市建设局网站自己制作游戏的软件
  • 网站建设先进深圳市中心在哪
  • dede中英文网站 视频建网站可以卖钱
  • vue做响应式网站wordpress发布时间精确到秒