LoginSignup
2
1

More than 1 year has passed since last update.

【Go/ Docker】開発環境用パッケージをgo installしようとしてつまづいた時の対処法

Last updated at Posted at 2022-04-29

起こった事象

ある日、DockerでGoの開発を行っていた時に、Live Reload用に「gin」というパッケージをインストールして使っていました。

別の日に別のPCから開発をする必要があったため、事前にDockerfileを以下のように書き換えておきました。

FROM golang:1.18.1-alpine3.15

WORKDIR /go/app/

RUN apk update \
&&  export GO111MODULE=suto

COPY ./app/ .

RUN go mod tidy \
&&  go install github.com/codegangsta/gin
# go mod tidyを実行するとコードで使用されているパッケージのみがgo.mod/go.sumに反映されるため、
# go mod tidy実行後にginのインストールを行っている

EXPOSE 8080

CMD ["gin", "--immediate", "run", "main.go", "0.0.0.0:8080"]

そして後日、別PCからdocker runしたところ下記のようなエラーが...

ERROR: for app  Cannot start service app:
OCI runtime create failed:
container_linux.go:380:
starting container process caused: exec: "gin": executable file not found in $PATH: unknown

「ginというコマンドが見つからない」と言われていますが、自分の中ではDockerfileの中で確かにインストールしていたはず...

解決方法

「go install」を使う場合は、バージョンの指定も必須 だったようです。

そのためDockerfileを下記のように修正しなおしました。

RUN go mod tidy \
&&  go install github.com/codegangsta/gin

RUN go mod tidy \
&&  go install github.com/codegangsta/gin@latest

特別バージョンの指定をしたいわけではない場合には、@latestを付ければ問題ないようです。

上記にてとりあえずのところエラーは解決しました。:clap_tone1:

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1