amborle / featmap

The simple and open source user story mapping tool.
Other
513 stars 82 forks source link

Docker compose install/run doesn't work: 'go get' is no longer supported outside a module. #85

Open bartvanderwal opened 1 week ago

bartvanderwal commented 1 week ago

Looks great. I'd love to use this. But on following the guide for the install/running with docker compose from your README.md I get an error on a RUN line from the Dockerfile. The short version of the error is this (complete stack trace below, for SEO / analysis):

'go get' is no longer supported outside a module.

I'm not a Go expert, but this seems to be a build error from Go, where with newer versions of go you should use go install ... instead of go get .. to install dependencies.

I (or other featmap users) shouldn't need to be Go experts either, but this error would have been prevented if you had locked down a specific Go version in your base image instead of using just golang:alpine like you had.

Since the README.md is from 21 aug 2019 I found in Docker Hub from the 36 pages (!) of go-alpine releases that version 1.12.9-alpine3.10 seems to be from the same date, and not a release candidate (rc) or beta and also with a fixed alpine version (to prevent dependency problems there. Maybe I'll to change the base image in the Dockerfile to that.

Edit/addition: I hope no other issues from dependency hell emerge 😉 . See also the 12factor app principles:

II. Dependencies

Explicitly declare and isolate dependencies "A twelve-factor app never relies on implicit existence of system-wide packages. It declares all dependencies, completely and exactly, via a dependency declaration manifest." - https://12factor.net/dependencies

Here is the complete stack trace

bartvanderwal@MacBook-Pro featmap % git remote -v
origin  https://github.com/amborle/featmap.git (fetch)
origin  https://github.com/amborle/featmap.git (push)
bartvanderwal@MacBook-Pro featmap % cp config/.env .
bartvanderwal@MacBook-Pro featmap % cp config/conf.json .
bartvanderwal@MacBook-Pro featmap % docker-compose build
[+] Building 10.1s (8/15)                                                                                            docker:desktop-linux
 => [featmap internal] load build definition from Dockerfile                                                                         0.0s
 => => transferring dockerfile: 595B                                                                                                 0.0s
 => [featmap internal] load metadata for docker.io/library/golang:alpine                                                             1.4s
 => [featmap internal] load .dockerignore                                                                                            0.0s
 => => transferring context: 2B                                                                                                      0.0s
 => [featmap  1/11] FROM docker.io/library/golang:alpine@sha256:8c9183f715b0b4eca05b8b3dbf59766aaedb41ec07477b132ee2891ac0110a07     5.9s
 => => resolve docker.io/library/golang:alpine@sha256:8c9183f715b0b4eca05b8b3dbf59766aaedb41ec07477b132ee2891ac0110a07               0.0s
 => => sha256:763d8310d87528dad44d0fd3ad17e81221c0c207c455a029f9a94de450eebb7b 295.46kB / 295.46kB                                   0.4s
 => => sha256:ad54470edeaca3376e9010d6ee8ae76847ce9900d3bfcdf32fc98cfd6fc2fa26 66.27MB / 66.27MB                                     3.3s
 => => sha256:8c9183f715b0b4eca05b8b3dbf59766aaedb41ec07477b132ee2891ac0110a07 10.29kB / 10.29kB                                     0.0s
 => => sha256:d6d72990ed8400b547c91e25b14d97712f4eb9d0c899ed8aed05feed668d1f39 1.92kB / 1.92kB                                       0.0s
 => => sha256:b96a5189625045a52a0b26f2513c7deaf5d23da92b522eca0ee8f9a5a37d7a3b 2.09kB / 2.09kB                                       0.0s
 => => sha256:a258b2a6b59a7aa244d8ceab095c7f8df726f27075a69fca7ad8490f3f63148a 4.09MB / 4.09MB                                       0.3s
 => => extracting sha256:a258b2a6b59a7aa244d8ceab095c7f8df726f27075a69fca7ad8490f3f63148a                                            0.1s
 => => sha256:f3b1003f5882a5d5a535645e21145ae456e8c0f232071a98b6a80e6e671ef8ee 127B / 127B                                           0.5s
 => => sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 32B / 32B                                             0.6s
 => => extracting sha256:763d8310d87528dad44d0fd3ad17e81221c0c207c455a029f9a94de450eebb7b                                            0.0s
 => => extracting sha256:ad54470edeaca3376e9010d6ee8ae76847ce9900d3bfcdf32fc98cfd6fc2fa26                                            2.3s
 => => extracting sha256:f3b1003f5882a5d5a535645e21145ae456e8c0f232071a98b6a80e6e671ef8ee                                            0.0s
 => => extracting sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1                                            0.0s
 => [featmap internal] load build context                                                                                            0.1s
 => => transferring context: 17.19MB                                                                                                 0.1s
 => [featmap  2/11] WORKDIR /src                                                                                                     0.4s
 => [featmap  3/11] RUN apk add --update npm git                                                                                     2.1s
 => ERROR [featmap  4/11] RUN go get -u github.com/jteeuwen/go-bindata/...                                                           0.3s
------
 > [featmap  4/11] RUN go get -u github.com/jteeuwen/go-bindata/...:
0.250 go: go.mod file not found in current directory or any parent directory.
0.250   'go get' is no longer supported outside a module.
0.250   To build and install a command, use 'go install' with a version,
0.250   like 'go install example.com/cmd@latest'
0.250   For more information, see https://golang.org/doc/go-get-install-deprecation
0.250   or run 'go help get' or 'go help install'.
------
failed to solve: process "/bin/sh -c go get -u github.com/jteeuwen/go-bindata/..." did not complete successfully: exit code: 1
hnmendes commented 1 week ago

There's a pull request that handles it - https://github.com/amborle/featmap/pull/82.

Change 3 files as it is on PR:

And then, you're good to go 😜