首页 > 编程语言 >解决Go程序可执行文件在alpine容器中无法运行

解决Go程序可执行文件在alpine容器中无法运行

时间:2022-10-20 20:33:32浏览次数:49  
标签:可执行文件 容器 程序 编译 Go 运行 alpine

Go可执行程序在alpine容器中无法运行的问题解决

今天遇到一个问题,我把我的go应用编译好之后,在Dockerfile里指定它到容器中启动,但是启动不起来,我通过测试,发现了这个现象

:我的程序是在容器里的,但是我要运行时,它缺提示not found

image-20221020201838280

原因

not found不是说找不到这个程序,而是找不到需要的动态连接库。

go语言是静态编译型的语言,即使这个程序非常简单,但是它还是依赖了动态链接库,这个动态链接库是系统内置的,而我编译用的系统是ubuntu,要在alpine上运行,在ubuntu上用的是glibc,alpine为了追求轻量,选择了musl libc,因此我的程序无法正常动态链接。

解决方案

  1. 在alpine上编译
  2. 在alpine上安装glibc
  3. 使用静态链接

第三种方法是最简单的,只要在编译时加上 -tags netgo,这时候编译出来的二进制文件就可以运行了

标签:可执行文件,容器,程序,编译,Go,运行,alpine
From: https://www.cnblogs.com/yumingkuan/p/16811185.html

相关文章

  • Google Analytics 测试
    集成谷歌分析之后官方提供了测试工具——DebugView可以通过这个工具验证sdk集成的是否正确官方文档:https://firebase.google.com/docs/analytics/debugview测试步骤:......
  • 字段加密实践(django-fernet-fields)
    一、fernet介绍Fernet用于django模型字段对称加密,使用crytography库。官网帮助文档1、先决条件django-fernet-fields支持Django1.8.2以及更高版本,Python2.7、3......
  • Django启动问题大杂烩
    1.ProgrammingErrorat/admin/login/(1146,"Table'mes.auth_user'doesn'texist") 解决办法:输入命令:pythonmanage.pymigrate   更新数据库表单......
  • 记录python3.7版本中 Django+celery 启动报错
     虚拟环境启动I报错Traceback(mostrecentcalllast):File"/data/.virtualenvs/cmdb/lib/python3.7/site-packages/gunicorn/arbiter.py",line589,inspawn_w......
  • Django初始化创建用户名
    (venv)D:\project\py37project\Djangopro\Procrm>Pythonmanage.pycreatesuperuser  #这是创建Django初始化用户名跟密码的一个命令。示例如下:Username(leavebla......
  • Django Rest Framework中文文档:Serializer relations
    这是对DRF官方文档:Serializerrelations的翻译,根据个人的理解对内容做了些补充、修改和整理。一,django模型间的关系在我们对数据进行建模时,最重要的一点就是根据功能需求......
  • 华科golang详细示例代码
    packagemainimport("net/url""net/http""bytes""fmt""io/ioutil")constProxyServer="ip.hahado.cn:39010"typeProxyAut......
  • 写在Go语言招生之际 - 学相伴 - 狂神说
    写在Go语言招生之际,谈谈这两年所见所想,希望能对你有启发。前两天看视频看到一个评论,先生愿教我不愿学,时也!命也!作为一名讲师深有感触。 1 那个时候有几十万的Java观众,......
  • go的长连接
    1、golang的持久化连接在Golang中使用持久化连接发起HTTP请求,主要依赖Transport,官方封装的net库中已经支持。Transport实现了RoundTripper接口,该接口只有一个......
  • Django环境搭建
    1、安装Django,进入到python安装目录的scripts目录下,使用命令pip3installdjango2、创建Django项目,使用命令django-adminstartproject项目名称,就会在指定文件夹下生成Djan......