Dockerfile 听起来像是 Dark Fly,scratch 我好像听到的是 "script"?
不看字幕中文也听不清...
此外还有一些疑问。
先说个无聊的,后面的 "as final" 嘎哈用的?没有也一样啊。
首先,
我的脚本是这样的:
PLATFORM="$(uname -s | tr 'A-Z' 'a-z')"
export CGO_ENABLED=0
export GOOS=${PLATFORM}
export BUILD_DATE=$(date '+%Y%m%d%H%M%S%Z')
export BUILD_LDFLAGS="-X
github.com/name/project/version.GitHash=$(git rev-parse HEAD | cut -c1-8) "
export BUILD_LDFLAGS="${BUILD_LDFLAGS} -X
github.com/name/project/version.BuildDate=\"${BUILD_DATE}\" "
export BUILD_LDFLAGS="${BUILD_LDFLAGS} \"-extldflags='-static'\""
go build -a -ldflags="$BUILD_LDFLAGS" ./cmd/my-command
这就足以在当前目录下,从 ./cmd/my-command 寻找 main 然后生成了 binary release 了。
我们使用 go help get 得到说明:
Get downloads the packages named by the import paths, along with their
dependencies. It then installs the named packages, like 'go install'.
这个在没有 dep 时候使用一下它下载一下依赖可以理解。但是在有 dep 后为何要保留?
其次,为啥要 copy 那些源代码目录?这远不是最小了。
要是是配置文件,建议楼主了解下 viper。docker 里面不需要贴这些配置文件的。
要是是静态文件,go-bindata 了解一下。