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

用docker部署goweb项目

分阶段构建docker镜像

Go程序编译之后会得到一个可执行的二进制文件,其实在最终的镜像中是不需要go编译器的,也就是说我们只需要一个运行最终二进制文件的容器即可。

Docker的最佳实践之一是通过仅保留二进制文件来减小镜像大小,为此,我们将使用一种称为多阶段构建的技术,这意味着我们将通过多个步骤构建镜像。

dockerfile文件代码示例

FROM golang:alpine AS builder

# 为我们的镜像设置必要的环境变量
ENV GO111MODULE=on \
    GOPROXY=https://goproxy.cn,direct \
    CGO_ENABLED=0 \
    GOOS=linux \
    GOARCH=amd64

# 移动到工作目录:/build
WORKDIR /build

# 将代码复制到容器中
COPY . .

# 将我们的代码编译成二进制可执行文件 app
RUN go build -o app .

###################
# 接下来创建一个小镜像
###################
FROM scratch

# 从builder镜像中把/dist/app 拷贝到当前目录
COPY --from=builder /build/app /

# 需要运行的命令
ENTRYPOINT ["/app"]

构建镜像命令

1.在项目根目录下,构建名为goweb_app的镜像:

docker build . -t goweb_app

2.构建成功后,运行镜像,把主机端口映射到容器端口

docker run -p 8888:8888 goweb_app

接下来就可以在自己的主机上访问8888端口了

http://www.dtcms.com/a/108346.html

相关文章:

  • RainbowDash 的 Robot
  • C++学习笔记(三十一)——map
  • Git的基础使用方法
  • 微信小程序唤起app
  • 【Docker】使用Docker快速部署n8n和unclecode/crawl4ai
  • PEFT实战(一)——LoRA
  • 大模型学习一:deepseek api 调用实战以及参数介绍
  • 【动手学深度学习】#7 现代卷积神经网络
  • C++多态:从青铜九鼎到虚函数表的千年演化密码
  • Pytorch|RNN-心脏病预测
  • 文件分享系统--使用AI Trae开发前后端
  • 鸿蒙应用元服务开发-Account Kit获取华为账号用户信息概述
  • 魔塔社区使用llamafactory微调AI阅卷试题系统
  • 应用弥散张量成像和支持向量机检测慢性爆炸相关轻度颅脑损伤
  • Dockerfile文件构建镜像Anaconda+Python教程
  • 六十天Linux从0到项目搭建(第十八十九天)(缓冲区机制、未打开的磁盘存放、文件存储、磁盘物理结构、寻址、块设备管理、文件系统、增删查改、硬链接、软链接)
  • 通俗易懂的解释Git操作中“合并”和“变基”的区别
  • CMD命令通过已知ip使用以下三种方式来获取对方主机名
  • 常见优化SQL语句策略和示例
  • ControlNet-Tile详解
  • 最新Spring Security实战教程(八)Remember-Me实现原理 - 持久化令牌与安全存储方案
  • Python数据可视化-第3章-图表辅助元素的定制
  • PyTorch 中池化层MaxPool2d
  • CSS--解决float: right在空间不够时会自动往下移的问题
  • 音视频入门基础:MPEG2-TS专题(26)——通过FFmpeg命令使用RTP发送TS流
  • 【Word】批注一键导出:VBA 宏
  • C#核心学习(五)面向对象--封装(4)C#中的索引器详解:让对象像数组一样灵活访问
  • MySQL的数据目录以及日志
  • 企业网络优化方案:SD-WAN赋能企业远程办公
  • 使用JSON.stringify报错:Uncaught TypeError: cyclic object value