Docker构建Golang项目常见问题

Docker构建Golang项目常见问题

  • 1 Dockerfile
    • 1.1 dockerfile报错:failed to read expected number of bytes: unexpected EOF
    • 1.2 go mod tidy: go.mod file indicates go 1.21, but maximum supported version is 1.17
    • 1.3 是否指定启动文件问题
  • 2 构建及部署

1 Dockerfile

1.1 dockerfile报错:failed to read expected number of bytes: unexpected EOF

可能是docker拉取的镜像版本导致的问题的出现。

解决办法:

  1. 使用docker pull {镜像名称},单独拉取构建时所需的基础镜像。
  2. 更改Dockerfile中的镜像版本。

1.2 go mod tidy: go.mod file indicates go 1.21, but maximum supported version is 1.17

在这里插入图片描述
因为Dockerfile中基础镜像是golang:alpine。查看golang:alpine可以看到里面的golang版本是1.17.5

解决办法:更改Dockerfile中基础镜像为golang:1.21。

1.3 是否指定启动文件问题

FROM golang:1.21 AS builderLABEL stage=gobuilderENV GOOS linux
ENV GOARCH amd64
ENV CGO_ENABLED 0
ENV GO111MODULE on
ENV GOPROXY https://goproxy.cn,directARG AppDirWORKDIR /buildADD ${AppDir}/go.mod .
ADD ${AppDir}/go.sum .
ADD core .RUN go mod tidy && go mod downloadCOPY . .
COPY ${AppDir}/etc /app/etc# 指定启动文件
RUN #cd ${AppDir} && go build -ldflags="-s -w" -o /app/app ./cmd/main.go
# 不指定1
RUN #cd ${AppDir} && go build -ldflags="-s -w" -o /app/app *.go
# 不指定 构建的时候会自己去找.go文件
RUN cd ${AppDir} && go build -ldflags="-s -w" -o /app/appFROM scratchARG AppDir
LABEL xxx.net.service=${AppDir}
LABEL xxx.net.slslog=trueCOPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
COPY --from=builder /usr/share/zoneinfo/Asia/Shanghai /usr/share/zoneinfo/Asia/Shanghai
ENV TZ Asia/ShanghaiWORKDIR /app
COPY --from=builder /app/app /app/app
COPY --from=builder /app/etc /app/etcCMD ["./app", "-f", "etc/config.yaml"]

2 构建及部署

  1. 构建
docker build -t ucenter-rpc:0.0.1 -f Dockerfile .
  1. Docker创建网络
docker network create --driver=bridge zero_bridge_network
  1. 创建配置文件及日志目录
mkdir -p /opt/soft/go-zero/deploy/ucenter-rpc/etc
mkdir -p /opt/soft/go-zero/deploy/ucenter-rpc/logs
  1. docker-compose
version: "3.1"
services:ucenter_rpc:container_name: dcv3_ucenter_rpc_serviceimage: 镜像restart: on-failureports:- 8080:8080volumes:- /etc/localtime:/etc/localtime:ro- /opt/soft/go-zero/deploy/ucenter-rpc/etc:/app/etc- /opt/soft/go-zero/deploy/ucenter-rpc/logs:/app/logshealthcheck:test: [ "CMD", "curl", "-f", "http://localhost:6470/healthz" ]interval: 1m30stimeout: 10sretries: 3start_period: 40snetworks:default:external:name: go-zero_bridge_network

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/638231.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS的语法规则——基础选择器

元素&#xff1a; 用法&#xff1a; 标签名&#xff1a;{style的内容} 特点&#xff1a; 全局性&#xff0c;使用后&#xff0c;所有的相同标签都是同一种样式。 举例&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UT…

Docker - Compose

原文地址&#xff0c;使用效果更佳&#xff01; Docker - Compose | CoderMast编程桅杆Docker - Compose 在部署应用时&#xff0c;常常使用到不止一个容器&#xff0c;那么在部署容器的时候就需要一个一个进行部署&#xff0c;这样的部署过程也相对来说比较繁琐复杂&#xff…

医学图像分割入门-FCN理论与实践

FCN&#xff08;全卷积神经网络&#xff09; 引言 全卷积网络&#xff08;Fully Convolutional Network&#xff0c;简称FCN&#xff09;是一种深度学习模型&#xff0c;专门设计用于图像分割任务。相比于传统的基于全连接层的神经网络&#xff0c;FCN可以接受任意尺寸的输入…

「健身党」真无线蓝牙耳机怎么选?攻略来啦

在减脂健身的道路上,我虽然还是个新手,但在耳机选择上却已经踩了不少雷。根据自己的经验分享一些挑选真无线蓝牙耳机的小技巧,希望能为大家提供一些帮助,避免像我一样花冤枉钱。 一、耳机类型 传统入耳式耳机和头戴式耳机真的达咩,健身的时候戴这两种耳机不仅容易掉,而且舒适…

Stanford天空图像和光伏发电数据集

需要的同学私信联系&#xff0c;推荐关注上面图片右下角的订阅号平台 自取下载。 太阳能的间歇性对光伏&#xff08;PV&#xff09;与电网的大规模集成提出了挑战。基于天空图像的太阳能预报已被认为是预测短期波动的一种很有前途的方法。在这里&#xff0c;介绍一个数据集名叫…

详解QListView、QListWidget、QTableView、QTableWidget的使用以及区别

在Qt框架中&#xff0c;QListView、QListWidget、QTableView和QTableWidget都是用于显示列表或表格数据的控件。它们在用途、数据模型、灵活性以及直接操作数据的便捷性等方面存在一定的差异。下面将详细阐述这些控件的使用方法以及它们之间的区别&#xff0c;并提供相应的C代码…

算法课程笔记——蓝桥云课第二次直播

注意是‘’ 都正确 可以理解为a的首地址也是数字&#xff0c;向右1 %p逻辑地址 Cin cout字符串“”单个字符本身‘’&#xff0c;其他时候不用加 这样就可以 逆运算 bool比较真假<从小到大排 11/25 都输出最省事 变成长度为n1的数组 考虑到整个都可能为一个颜色&#xff0c;…

Docker Desktop打开一直转圈的解决办法

安装Docker Desktop之前确保你的Hyper-V已经打开 开启后需要重新安装重新安装重新安装这是最关键的一步&#xff0c;博主自己看了很多教程&#xff0c;最后试着重装了一下解决了 安装DockerDesktop的时候我的电脑根本就没有Hyper-V这个功能选项&#xff0c;可能是这个问题 如…

C51配置115200串口波特率

一、首先用软件模拟 经过验证&#xff0c;用软件配置115200波特率&#xff0c;在C51里面是行不通的&#xff0c;因为寄存器有限 此时应该翻阅手册看看&#xff0c;是否有其他的解决办法 二、查阅手册 发现定时器2&#xff0c;其实是C52的&#xff0c;也正是C52比C51增强的地…

Junit 整合-ApiHug准备-测试篇-013

&#x1f917; ApiHug {Postman|Swagger|Api...} 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱&#xff0c;有温度&#xff0c;有质量&#xff0c;有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace 这里简单…

第G8周:ACGAN任务

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制&#x1f680; 文章来源&#xff1a;K同学的学习圈子 参考论文 这周主要任务就是根据之前GAN&#xff0c;CGAN&#xff0c;SGAN网络架构搭建…

在PostgreSQL中如何实现递归查询,例如使用WITH RECURSIVE构建层次结构数据?

文章目录 解决方案使用WITH RECURSIVE进行递归查询示例代码 总结 在PostgreSQL中&#xff0c;递归查询是一种非常强大的工具&#xff0c;它可以用来查询具有层次结构或树形结构的数据。例如&#xff0c;你可能会在员工-经理关系、目录结构或组织结构图中遇到这样的数据。为了处…