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

先编写Go Web服务并创建Dockerfile进行多阶段构建,再通过%ignore_a_1%-compose.yml定义服务端口映射与环境变量,最后用docker-compose up启动容器,实现Golang服务在Docker中的快速部署与验证。

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

用Golang在Docker Compose中搭建服务,核心是将Go应用容器化,并通过docker-compose.yml定义服务依赖和运行环境。整个过程不复杂,关键在于正确配置构建、网络和端口映射。

编写简单的Golang Web服务

先准备一个基础的HTTP服务,监听某个端口,返回简单响应。

示例代码(main.go):

package main

import ("fmt""net/http")

func handler(w http.ResponseWriter, r *http.Request) {fmt.Fprintf(w, "Hello from Go service!")}

func main() {http.HandleFunc("/", handler)fmt.Println("Server is starting on :8080")http.ListenAndServe(":8080", nil)}

这个服务监听8080端口,访问根路径会返回一句话。

创建Dockerfile容器化Go应用

在项目根目录创建Dockerfile,使用多阶段构建减小镜像体积。

立即学习“go语言免费学习笔记(深入)”;

# 构建阶段FROM golang:1.21 AS builderWORKDIR /appCOPY . .RUN go mod tidyRUN go build -o main .

运行阶段

FROM alpine:latestRUN apk --no-cache add ca-certificatesWORKDIR /root/COPY --from=builder /app/main .CMD ["./main"]

第一阶段编译二进制,第二阶段使用轻量Alpine运行,提升安全性与启动速度。

编写docker-compose.yml定义服务

创建docker-compose.yml文件,定义Go服务的构建和运行参数。

version: '3.8'

services:go-service:build: .ports:

  • "8080:8080"environment:
  • ENV=development

说明:

build: . 表示基于当前目录的Dockerfile构建镜像ports 将主机8080映射到容器8080environment 可传入环境变量,供程序读取

如果服务依赖数据库或其他组件,可以继续在services下添加mysql、redis等。

启动和验证服务

确保安装了Docker和Docker Compose后,执行:

docker-compose up --build

首次加--build确保镜像重新构建。看到输出Server is starting on :8080表示成功启动。

打开浏览器或用curl访问:http://localhost:8080,应看到返回内容。

停止服务按 Ctrl+C,或后台运行加-d参数:

docker-compose up -d

基本上就这些。只要Go服务能正常运行,Dockerfile正确打包,再通过Compose编排,就能快速搭建本地开发环境。后续可加入日志、网络、健康检查等增强配置。

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1416108.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
如何在Golang中使用replace进行本地调试
上一篇 2025年12月16日 10:12:54
Golang如何实现mock数据进行测试
下一篇 2025年12月16日 10:13:14

相关推荐

发表回复

登录后才能评论
关注微信