栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

alpine容器二进制安装go

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

alpine容器二进制安装go

目录结构

个人小笔记:alpine系统明明安装了go,命令行输入 go version 提示:/bin/sh: go: not found,/bin/sh: go:没有找到,就觉得很奇怪!后来到网上看了一下才知道

/ # go version
/bin/sh: go: not found

/ # go version
/bin/sh: go: not found

[root@test go]# wget https://go.dev/dl/go1.17.5.linux-amd64.tar.gz
[root@test go]# ls
Dockerfile  go1.17.5.linux-amd64.tar.gz

Dockerfile文件

FROM alpine:3.12
ADD go1.17.5.linux-amd64.tar.gz /usr/local/
RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2 && 
    ln -s /usr/local/go/bin/go /usr/bin/go && ln -s /usr/local/go/bin/gofmt /usr/bin/gofmt

FROM alpine:3.12
ADD go1.17.5.linux-amd64.tar.gz /usr/local/
RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2 &&
    ln -s /usr/local/go/bin/go /usr/bin/go && ln -s /usr/local/go/bin/gofmt /usr/bin/gofmt

内容详解:

1、指定alpine版本

FROM alpine:3.12

2、去到golang官网下载安装包:Downloads - The Go Programming Language

https://go.dev/dl/go1.17.5.linux-amd64.tar.gz

3、由于Alpine镜像使用的根本不是gnu libc而是musl libc,所以/lib64/ld-linux-x86-64.so.2是不存在的,而实际上/lib64都是不存在的。

1.进入到容器,使用ldd查看二进制文件所需要的的依赖库,会发现我们的alpine根本就没有,提示动态连接库错误,ldd提示信息如下所示

/ # ldd /usr/local/go/bin/go
	/lib64/ld-linux-x86-64.so.2 (0x7f6978fcf000)
	libpthread.so.0 => /lib64/ld-linux-x86-64.so.2 (0x7f6978fcf000)
	libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7f6978fcf000)

/ # ldd /usr/local/go/bin/go
    /lib64/ld-linux-x86-64.so.2 (0x7f6978fcf000)
    libpthread.so.0 => /lib64/ld-linux-x86-64.so.2 (0x7f6978fcf000)
    libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7f6978fcf000)

上面这些alpine系统根本就没有,所以才会出现/bin/sh: go: not found

2、gnu libc和musl libc号称兼容(部分兼容),所以做个软链接过去

mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2

先创建lib64目录:mkdir /lib64

再做软链接:ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/944517.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号