Golang使用Alpine基础镜像问题
简介Golang如果直接使用Alpine基础镜像进行打包,在运行的时候会出现如下问题:standard_init_linux.go:211: exec user process caused "no such file or directory"
如果在使用Docker打包发布Golang应用程序的时候,如果编译命令是:
go build -o hello
Dockerfile文件内容如下:
FROM alpine:latest MAINTAINER UserName "xxxxxxx@qq.com" WORKDIR /app ADD hello /app/ EXPOSE 80 ENTRYPOINT ["./hello"]
那么我们通过docker run运行后会出现如下问题:
standard_init_linux.go:211: exec user process caused "no such file or directory"
如何解决上面的问题呢?最简单的方式就是直接使用centos镜像,这样不好的就是编译后的镜像太大了。如果还是想使用alpine镜像,那么就需要在编译的时候加上–tags netgo参数,具体为什么需要自行去分析下,可能是因为该镜像的底层库的问题。那么编译命令如下:
go build --tags netgo -o hello
Alpine镜像还有另外一个问题,一般我们都都会对容器进行设置时区,如果现在还是通过:
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
是不行的,运行的时候会出现:
cp: can't stat '/usr/share/zoneinfo/Asia/Shanghai': No such file or directory
因为Alpine镜像没有时区设置功能,需要安装时区设置,最终命令如下:
RUN apk update && \
apk add tzdata && \
/bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
前一篇博客中已经说过Golang对Gzip的处理,其实这是我的服务器端的处理,那么当我们服务器返回Gzip压缩的字符串后,客户端如何进行解压呢?本文主要记录下JavaScript对Gzip进行压缩和解压处理。
在PHP中,对二维数组排序还是非常简单的,但是在Golang中对二位数据排序显的就稍显麻烦,但是我们还是可以通过结构体来进行排序,本文主要记录Golang如何通过结构体的多个字段来进行排序。
通过sudo命令,可以让普通用户在执行指定命令或程序上,拥有超级管理员的权限。并有针对性将不同的命令授予指定的普通用户,同时普通用户不需要知道root的密码就可以得到授权,授权的方式可以通过visudo配置管理。
《精忠报国》是歌手屠洪刚演唱的一首歌曲。由陈涛作词,张宏光作曲。收录在屠洪刚1999年发行的同名专辑《精忠报国》里。歌曲内容反应了南宋抗金名将岳飞的戎马一生,歌颂岳飞精忠报国的强烈爱国主义精神。该曲也是何中华、俞飞鸿等主演古龙武侠剧《三少爷的剑》的片尾曲。
快速生成表格
Electron页面跳转、浏览器打开链接和打开新窗口
在使用Git的过程中,不想每次都输入用户名和密码去拉取代码,所以就需要保存这些信息,那么既然有保存了,就必须有清除功能。
在Mac电脑中,如何对Git的用户名和密码进行修改呢?起初不懂Mac,所以整了很久,本文将记录如何对这个进行操作,以便后期使用。
Docker编译镜像出现:fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.12/main: temporary error (try again later)
WARNING: Ignoring APKINDEX.2c4ac24e.tar.gz: No such file or directory问题