Dockerイメージのgolang:1-alpineはgo getできない
とにかくコンテナのベースイメージは軽い方が良いんでしょ?みたいなノリで alpine ベースのイメージを使おうとして失敗した。
git
がないからgo get
できない。
% docker run --rm -it golang:1-alpine /bin/sh
/go # go get -u github.com/golang/dep/cmd/dep
go: missing Git command. See https://golang.org/s/gogetcmd
package github.com/golang/dep: exec: "git": executable file not found in $PATH
/go # which git
/go #
git
をインストールして、再度go get
する。
/go # apk add --no-cache git
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz
(1/5) Installing libssh2 (1.8.0-r2)
(2/5) Installing libcurl (7.60.0-r0)
(3/5) Installing expat (2.2.5-r0)
(4/5) Installing pcre2 (10.30-r0)
(5/5) Installing git (2.15.0-r1)
Executing busybox-1.27.2-r7.trigger
OK: 19 MiB in 17 packages
/go # which git
/usr/bin/git
/go # go get -u github.com/golang/dep/cmd/dep
/go # which dep
/go/bin/dep
無事、go get
できた。
実際のところマルチステージビルドをやるので、ビルド環境についてはあまり軽量化は考えなくても良いのかもしれない。