制作了一个“golang 制作 docker 最小镜像”的视频

2019-01-20 21:21:02 +08:00
 jicg

制作了一个构建 docker 的最小镜像的视频,上传到 B 站,分享给大家看。
希望能帮助大家稍微了解下下 docker。
希望大神们别喷,可以到 B 站提提建议。
B 站地址 https://www.bilibili.com/video/av40752125

4772 次点击
所在节点    Go 编程语言
35 条回复
jicg
2019-01-21 08:09:38 +08:00
@yuikns go-bindata 这个工具,我知道。他只是将静态文件打包到程序里面,得到的最终文件也不小,我一般用 upx 工具对他再压缩。
jicg
2019-01-21 08:56:59 +08:00
@yuikns 我又测了下,不需要 godep 也是可以的。谢谢
yuikns
2019-01-21 10:33:04 +08:00
@jicg 我是说

COPY --from=builder go/src/github.com/xxx/views /app/views
COPY --from=builder go/src/github.com/xxx/conf /app/conf

这一挂。
jicg
2019-01-21 11:22:47 +08:00
Beego 的基础项目,views 是存放页面模板文件的啊,必须要复制过去的吧,conf 是放配置文件的地方,也是需要的
jicg
2019-01-21 11:23:06 +08:00
@yuikns Beego 的基础项目,views 是存放页面模板文件的啊,必须要复制过去的吧,conf 是放配置文件的地方,也是需要的
artandlol
2019-01-21 11:35:30 +08:00
肯定用 alpine,现在都是主流了。
jicg
2019-01-21 11:50:58 +08:00
@artandlol scratch 比 alpine 小,用 alpine 的多
yuikns
2019-01-21 11:54:10 +08:00
@jicg 所以我才说

> 要是是配置文件,建议楼主了解下 viper。docker 里面不需要贴这些配置文件的。
> 要是是静态文件,go-bindata 了解一下。

配置文件你要是需要默认值,那配置下 default。要是不是,config ( https://docs.docker.com/compose/reference/config/ ) 或者 etcd 才是最终归宿。
imherer
2019-01-21 11:54:25 +08:00
IDE 用的 JB 家的哪个?
yuikns
2019-01-21 11:59:16 +08:00
@imherer 要是还写 scala/java/... 的话,不要 goland。和 idea + go plugin 没区别
artandlol
2019-01-21 12:34:03 +08:00
@jicg 那个几乎是空镜像吧
jicg
2019-01-21 12:43:27 +08:00
@artandlol 嗯嗯,是的
jicg
2019-01-21 14:03:18 +08:00
@yuikns 嗯嗯,好的。
go-bindata 我是知道的,用与不用,看个人爱好吧,我觉得 docker 没必须,将静态文件打包到可执行程序内部。go-bindata 的作者好像已经不再维护这个项目了。
viper 这个框架是配置文件的框架,非常好的框架,谢谢,分享。我用的是 beego 的项目来演示的,而 beego 配置文件可以设定取系统环境变量的值的,所以将 conf 文件复制过去没问题的。
yesono
2019-01-21 16:36:33 +08:00
golang 基础环境( alpine+glibc+改时区)+add go 二进制就可以了吧
···
FROM alpine:latest
# Install base packages
RUN apk update && apk --no-cache add tzdata ca-certificates wget zlib libgcc \
&& cp -r -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://raw.githubusercontent.com/sgerrand/alpine-pkg-glibc/master/sgerrand.rsa.pub && wget http://mirrors.lo
ngzhu.cn/src/glibc-2.28-r0.apk && apk add glibc-2.28-r0.apk && rm -f glibc-2.28-r0.apk /etc/apk/keys/sgerrand.rsa.pub
···
jicg
2019-01-21 17:03:40 +08:00
@yesono 这个方案非常好,好多人都是这样干的,将程序需要的文件压缩成 zip 文件,发布到网络上(如在 github 上发版),然后 docker 里面直接下载文件,解压出来,就可以了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/528892

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX