diff --git a/guestbook-go/Dockerfile b/guestbook-go/Dockerfile index bf25e7db3..3ddcf7884 100644 --- a/guestbook-go/Dockerfile +++ b/guestbook-go/Dockerfile @@ -12,12 +12,10 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM golang:1.10.0 -RUN go get github.com/codegangsta/negroni \ - github.com/gorilla/mux \ - github.com/xyproto/simpleredis/v2 +FROM golang:1.22.3 WORKDIR /app -ADD ./main.go . +COPY go.mod go.sum ./main.go ./ +RUN go mod download RUN CGO_ENABLED=0 GOOS=linux go build -o main . FROM scratch diff --git a/guestbook-go/Makefile b/guestbook-go/Makefile index 105130efa..b34a46a29 100644 --- a/guestbook-go/Makefile +++ b/guestbook-go/Makefile @@ -16,13 +16,21 @@ # Usage: # [VERSION=v3] [REGISTRY="staging-k8s.gcr.io"] make build -VERSION?=v3 +VERSION?=v4 REGISTRY?=staging-k8s.gcr.io release: clean build push clean +# validates changes in go.mod and resolves Go module's dependency details +go.sum: go.mod + go mod tidy + +# creates a go module in the directory +go.mod: + go mod init example.com/k8s-examples/guestbook + # builds a docker image that builds the app and packages it into a minimal docker image -build: +build: go.sum docker buildx build --load -t ${REGISTRY}/guestbook:${VERSION} . # push the image to an registry diff --git a/guestbook-go/go.mod b/guestbook-go/go.mod new file mode 100644 index 000000000..f320e921b --- /dev/null +++ b/guestbook-go/go.mod @@ -0,0 +1,14 @@ +module example.com/k8s-examples/guestbook + +go 1.22.3 + +require ( + github.com/codegangsta/negroni v1.0.0 + github.com/gorilla/mux v1.8.1 + github.com/xyproto/simpleredis/v2 v2.6.5 +) + +require ( + github.com/gomodule/redigo v1.8.9 // indirect + github.com/xyproto/pinterface v1.5.3 // indirect +) diff --git a/guestbook-go/go.sum b/guestbook-go/go.sum new file mode 100644 index 000000000..06780beb0 --- /dev/null +++ b/guestbook-go/go.sum @@ -0,0 +1,20 @@ +github.com/codegangsta/negroni v1.0.0 h1:+aYywywx4bnKXWvoWtRfJ91vC59NbEhEY03sZjQhbVY= +github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/gomodule/redigo v1.8.9 h1:Sl3u+2BI/kk+VEatbj0scLdrFhjPmbxOc1myhDP41ws= +github.com/gomodule/redigo v1.8.9/go.mod h1:7ArFNvsTjH8GMMzB4uy1snslv2BwmginuMs06a1uzZE= +github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= +github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/xyproto/pinterface v1.5.3 h1:RKkNT88cwrSqD9hU4cYAO5yeo8srg4TG+74Pcj88iz0= +github.com/xyproto/pinterface v1.5.3/go.mod h1:X5B5pKE49ak7SpyDh5QvJvLH9cC9XuZNDcl5hEyYc34= +github.com/xyproto/simpleredis/v2 v2.6.5 h1:PtAz5j2UUACNHx5LetI60dbCsVMhIv1H878bND4VQK4= +github.com/xyproto/simpleredis/v2 v2.6.5/go.mod h1:OrWVubZGr0SbpAjkAQkFn/iiex2AsblBm80uhYxbjQY= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=