如何在Golang中使用Docker Compose搭建服务


答案:使用Docker Compose可快速搭建Go开发环境,包含Go应用、PostgreSQL等服务。1. 编写Go Web服务并监听3000端口;2. 创建多阶段Dockerfile构建轻量镜像;3. 在docker-compose.yml中定义go-app和postgres服务,配置网络与数据卷;4. 执行docker-compose up -d启动服务,通过localhost:3000访问应用。改动后使用--build重新构建。

如何在golang中使用docker compose搭建服务

在Golang项目中使用Docker Compose可以快速搭建包含多个服务的本地开发环境,比如Go应用、数据库、缓存等。整个流程包括编写Go代码、创建Dockerfile打包应用、用docker-compose.yml定义服务,并通过命令一键启动。

编写简单的Go Web服务

假设你有一个基础的HTTP服务,监听3000端口:

main.go

package main
<p>import (
"fmt"
"net/http"
)</p><p>func hello(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello from Go!\n")
}</p><p>func main() {
http.HandleFunc("/", hello)
fmt.Println("Server starting on :3000")
http.ListenAndServe(":3000", nil)
}

为Go应用创建Dockerfile

在项目根目录创建 Dockerfile,用于构建Go镜像:

Dockerfile

FROM golang:1.21-alpine AS builder
WORKDIR /app
COPY . .
RUN go build -o main .
<p>FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=builder /app/main .
CMD ["./main"]

这个Dockerfile采用多阶段构建,先用Go镜像编译程序,再复制到轻量Alpine镜像中运行。

使用docker-compose.yml定义服务

创建 docker-compose.yml 文件,定义Go服务和依赖(例如PostgreSQL):

AiTxt 文案助手 AiTxt 文案助手

AiTxt 利用 Ai 帮助你生成您想要的一切文案,提升你的工作效率。

AiTxt 文案助手 105 查看详情 AiTxt 文案助手 docker-compose.yml

version: '3.8'
<p>services:
go-app:
build: .
ports:</p><ul><li>"3000:3000"
environment:</li><li>DB_HOST=postgres</li><li>DB_PORT=5432
depends_on:</li><li>postgres
networks:</li><li>app-network</li></ul><p>postgres:
image: postgres:15
environment:
POSTGRES_DB: mydb
POSTGRES_USER: user
POSTGRES_PASSWORD: password
ports:</p><ul><li>"5432:5432"
volumes:</li><li>postgres_data:/var/lib/postgresql/data
networks:</li><li>app-network</li></ul><p>volumes:
postgres_data:</p><p>networks:
app-network:
driver: bridge

上面配置了两个服务:
- go-app:从当前目录构建镜像,映射端口并设置环境变量。
- postgres:使用官方PostgreSQL镜像,持久化数据并加入同一网络。

启动和管理服务

在项目目录下执行以下命令:

  • docker-compose up -d:后台构建并启动所有服务
  • docker-compose logs go-app:查看Go服务日志
  • docker-compose down:停止并清理服务
  • docker-compose down --volumes:清除数据卷(慎用)

访问 https://www.php.cn/link/8e5687e2d6ab87e5da2f833f3e8986a4 即可看到Go服务返回内容。

基本上就这些。只要写好Dockerfile和compose文件,就能用几条命令搭起完整环境,适合本地开发和测试。改动代码后重新构建只需运行 docker-compose up --build。

以上就是如何在Golang中使用Docker Compose搭建服务的详细内容,更多请关注其它相关文章!


# 多个  # 靖边网站建设收费多少  # 模板网站推广  # 酒店旅游营销推广话术  # 新邵网站推广  # 营销免费推广方案范文模板  # 潍坊优化网站关键词  # 公墓行业网站建设流程表  # 网站我优化有什么弊端  # 项目经验网站优化  # 各网站推广费用比例  # 中文网  # 相关文章  # 你有  # 只需  # word  # 编译程序  # 如何在  # 转换为  # 镜像  # 文档  # 开发环境  # 环境变量  # ai  # 端口  # app  # golang  # docker  # go 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894 】


相关推荐: Django模型动态关联检查:高效管理复杂关系  蛙漫2(台版)正版官网 2025免费网页版分享  抖音号怎么解除企业认证改成个人?改成个人有影响吗?  Win10如何彻底关闭OneDrive Win10禁用云同步功能【纯净】  4399正版网页版入口高清直达链接  PHP动态导航按钮:根据用户登录状态切换链接与文本  qq邮箱怎么注册_QQ邮箱注册步骤与注意事项  《随手记》关闭首页消息推送方法  Golang如何实现HTTP请求重试机制_Golang HTTP请求错误处理策略  Win10共享文件夹设置方法 Win10局域网文件共享全攻略【教程】  Yandex无需登录畅游 俄罗斯搜索引擎最新官网指南  嘀嗒顺风车如何开具电子发票  在Dash应用中自定义HTML标题和网站图标  照片整理的黄金法则是怎样的? 理解“收集-筛选-归档-备份”四步流程  QQ网站入口直接登录 QQ官方正版登录页面  J*aScript模块加载器_RequireJS原理分析  Sublime怎么配置YAML文件格式化_Sublime YAML Formatter插件教程  OTT月报 | 2025年9月智能电视大数据报告  企查查官网和爱企查 企查查企业查询官网入口  如何快速去除厨房重油污? 2025年最好用的厨房清洁剂推荐  《虎扑》关闭社区内容推荐方法  AI图层蒙版怎么用_AI图层蒙版应用技巧与设计实例  《跳跳舞蹈》循环播放方法  高德地图怎么查看未来行程规划_高德地图未来行程规划查看方法  J*aScript模拟悬停与点击:自动化网页动态元素交互指南  J*aScript与HTML元素交互:图片点击事件与链接处理教程  抖音号升级企业号怎么改名字?升级企业号有哪些好处?  夸克浏览器资源嗅探怎么用 夸克浏览器网页资源下载技巧【教程】  POKI小游戏在线免费入口链接 POKI小游戏无下载秒玩玩  百度小说看书时如何翻页_百度小说手动翻页与自动翻页设置  HTML与J*aScript实现下拉菜单驱动的动态表格:构建交互式维修表单  mysql镜像配置如何恢复数据_mysql镜像配置数据恢复详细流程  如何在Golang中处理表单文件上传_Golang 表单文件上传示例  原子笔记app误删找回教程  微信客户端如何找回密码_微信客户端忘记密码找回方法  CodeIgniter 3 连接 SQL Server:正确获取查询结果的教程  在PySimpleGUI中实现键盘按键绑定按钮事件  荣耀Magic7拍照夜景噪点处理_荣耀Magic7相机优化  百度网盘如何设置上传限额  《随手记》启用语音备注方法  mail.qq.com登录入口 QQ邮箱网页版直达  解决CSS容器溢出问题:使用calc()实现精确布局与边距控制  苹果电脑如何快速查看电池状态 苹果电脑电池信息快捷方法  银信通自动开通原因揭秘  Lar*el 中高效执行多列更新:单次查询实现  《一起考教师》账号注销方法  C#解析并修改XML后保存 如何确保格式与编码的正确性  优化Asyncio嵌套函数调度:使用生产者-消费者模式实现并发流处理  AO3永久镜像入口开放_AO3最新网址兼容所有浏览器  《盗墓笔记手游》技能介绍 

 2025-10-29

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.