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

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

时间:2024-09-13 23:16:20浏览次数:1  
标签:可执行文件 容器 程序 编译 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/xzlive/p/18413059

相关文章

  • 如何学习go语言
    学习Go语言是一个系统而逐步深入的过程,以下是一些关键步骤和建议,帮助你高效地学习Go语言:书在python33点(0M一、了解Go语言的基础知识学习语法和基本概念:阅读官方的Go语言文档,包括语言规范、标准库和示例代码,了解Go语言的基本特性和用法。Go语言拥有简洁的语法结构和高效......
  • 创建一个Django项目
    步骤1:创建Django项目和应用创建Django项目:bashdjango-adminstartprojectmyprojectcdmyproject创建Django应用:bashpythonmanage.pystartappmyapp安装并配置DjangoRestFramework(如果尚未安装):bashpipinstalldjangorestframework将myapp和rest_f......
  • 基于django+vue大学生学科竞赛管理系统【开题报告+程序+论文】-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着高等教育的不断发展,学科竞赛已成为培养大学生创新精神、实践能力和团队协作精神的重要途径。然而,传统的手工管理方式在处理日益增长的......
  • 基于django+vue大学生学科竞赛管理系统【开题报告+程序+论文】-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着高等教育的快速发展与教育理念的持续创新,学科竞赛已成为培养大学生创新能力、实践能力和团队协作精神的重要途径。近年来,各类学科竞赛......
  • 基于django+vue大学生心理咨询服务网站【开题报告+程序+论文】-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在当今快节奏、高压力的社会环境中,大学生群体作为社会未来的栋梁,其心理健康问题日益凸显。学业压力、人际关系、职业规划等多重因素交织,使......
  • MongoDB与Pymongo深度实践:从基础概念到无限级评论应用示例
    文章目录前言一、MongoDB1.基本介绍2.概念解析3.常见的数据类型4.Docker安装5.常用命令二、Pymongo1.基本操作(连接、数据库、集合)2.基本操作(增删改查)三、MongoDB应用示例:无限级评论1.MongoDB工具类2.实现无限级评论逻辑3.Vue树形结构展示无限级评论前言  ......
  • Go runtime 调度器精讲(四):运行 main goroutine
    原创文章,欢迎转载,转载请注明出处,谢谢。0.前言皇天不负有心人,终于我们到了运行maingoroutine环节了。让我们走起来,看看一个goroutine到底是怎么运行的。1.运行goroutine稍微回顾下前面的内容,第一讲Go程序初始化,介绍了Go程序是怎么进入到runtime的,随之揭开runti......
  • Google Colab 简单使用
    使用GoogleColab需要谷歌账号和一点点魔法。注册好账号,找到我的云盘,可以点击右上角的log跳转。我的云端银盘这里可以选择上传文件还是文件夹,还可以新建文件夹然后在这个文件夹中选择你要上传的文件。例如我这创建了一个train_test的文件夹,然后上传了test_ScVgIM0.zip和t......
  • Go简介
    一.Go语言简介Go(Golang)是由谷歌开发的一种开源编程语言,于2009年首次发布。Go结合了C语言的简洁性和现代编程语言的高效性,具有并发性强、编译速度快、内存管理自动化等特点。它最初是为了解决谷歌在处理大规模服务器软件上的编程问题而设计的,目标是让工程师能够快速开发、部......
  • django特定地区冷链物流信息调度系统-计算机毕业设计源码92919
    特定地区冷链物流信息调度系统研究与应用摘要本研究针对特定地区的冷链物流信息调度系统进行了深入探索与实践。冷链物流作为一种特殊的物流方式,对于保障食品、药品等易腐产品的新鲜度和质量至关重要。然而,在特定地区,由于地理环境、经济水平和物流资源的限制,冷链物流面临着......