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
できた。
実際のところマルチステージビルドをやるので、ビルド環境についてはあまり軽量化は考えなくても良いのかもしれない。