首先安装Docker和Docker Compose,Linux用户通过APT安装并配置用户组,macOS和Windows用户使用Docker Desktop;接着在Golang项目中创建多阶段Dockerfile,基于golang:1.21-alpine构建并优化镜像体积,使用alpine运行二进制文件;然后编写docker-compose.yml统一管理应用及依赖服务如PostgreSQL;开发时可通过air实现热重载,并挂载本地代码卷提升迭代效率;最后建议规范go.mod和Docker上下文以确保构建一致性。

在Go语言(Golang)项目中使用Docker,能帮助你构建可移植、一致的开发与部署环境。以下是安装和配置适用于Golang项目的Docker开发环境的完整步骤。
安装Docker和Docker Compose
要开始,你需要在本地机器上安装Docker引擎和Docker Compose。
Linux(以Ubuntu为例):
更新包索引:sudo apt update安装依赖:sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release添加Docker官方GPG密钥:curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg添加仓库源:echo “deb [arch=$(dpkg –print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null安装Docker:sudo apt update && sudo apt install docker-ce docker-ce-cli containerd.io安装Docker Compose:sudo curl -L “https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)” -o /usr/local/bin/docker-compose && sudo chmod +x /usr/local/bin/docker-compose将当前用户加入docker组避免使用sudo:sudo usermod -aG docker $USER(需重新登录)
macOS 和 Windows:
立即学习“go语言免费学习笔记(深入)”;
下载并安装 Docker Desktop:访问 https://www.php.cn/link/2997607ae9ee935528ee27423a5b6e30Docker Desktop 已包含 Docker Engine、CLI 和 Compose,安装后即可使用
编写Go项目的Dockerfile
在你的Golang项目根目录下创建名为 Dockerfile 的文件,内容如下示例:
稿定抠图
AI自动消除图片背景
76 查看详情
# 使用官方Golang镜像作为基础镜像FROM golang:1.21-alpine AS builder# 设置工作目录WORKDIR /app
# 拷贝go.mod和go.sum(如果存在)以利用缓存COPY go.mod ./COPY go.sum ./
RUN go mod download# 拷贝源代码COPY . .
# 构建二进制文件RUN CGO_ENABLED=0 GOOS=linux go build -o main .
# 最终阶段:使用轻量级镜像运行FROM alpine:latestRUN apk --no-cache add ca-certificatesWORKDIR /root/
# 从构建阶段拷贝二进制文件COPY --from=builder /app/main .
# 暴露端口(根据实际服务调整)EXPOSE 8080
# 启动命令CMD ["./main"]
这个多阶段构建能有效减小最终镜像体积,并提升安全性。
使用docker-compose简化本地开发
如果你的Go服务依赖数据库或其他服务(如PostgreSQL、Redis),可以使用 docker-compose.yml 统一管理。
version: '3.8'services: app: build: . ports: - "8080:8080" environment: - DB_HOST=db - DB_PORT=5432 depends_on: - dbdb:image: postgres:15environment:POSTGRES_DB: myappPOSTGRES_USER: userPOSTGRES_PASSWORD: passwordports:
- "5432:5432"volumes:
- postgres_data:/var/lib/postgresql/data
volumes:postgres_data:
保存后,在项目目录运行:docker-compose up --build
这会构建Go应用镜像并启动服务和数据库。
开发中的实用技巧
为了在开发时实现热重载或快速迭代,你可以结合 air 或挂载代码卷。
在Dockerfile中添加air用于热重载(仅开发环境):
RUN go install github.com/cosmtrek/air@latest
修改compose文件中app服务的command:
command: air -c .air.toml
将本地代码挂载到容器中,实现修改即时生效:
volumes: - .:/app - /app/bin - /app/vendor
注意:生产环境不要启用热重载或代码挂载
基本上就这些。通过以上步骤,你可以快速搭建一个适合Golang项目的Docker开发环境,便于团队协作和后续部署。不复杂但容易忽略的是权限和模块依赖的处理,建议每次构建前确认go.mod正确且Docker上下文不包含冗余文件。
以上就是Golang如何安装并配置Docker开发环境的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1026995.html
微信扫一扫
支付宝扫一扫