Docker にて package github.com/cosmtrek/air@latest: cannot use path@version syntax in GOPATH mode エラーが出た時の対応

air のインストールが失敗する

Docker にて golang のホットリロードと呼ばれる air をインストールしようとした時に起きたエラー。

$ docker-compose up --build
package github.com/cosmtrek/air@latest: cannot use path@version syntax in GOPATH mode

docker-compose.yaml


version: "3"

services:
    app:
        build:
            context: .
        volumes:
            - ./app:/var/www/html
        tty: true
        working_dir: /var/www/html

Dockerfile

FROM golang:1
RUN go install github.com/cosmtrek/air@latest

解決策その1

  • 「ENV export GO111MODULE=on」を追加する。

と、インストールできるらしいけど、自分はできなかった。

Dockerfile

FROM golang:1
# 追加
ENV export GO111MODULE=on
RUN go install github.com/cosmtrek/air@latest

解決策その2

  • go のバージョンを上げる。

自分はこちらで解決。
「golang:1」や「golang:latest」などは一度イメージを pull すると、
その時の最新のバージョンを pull するだけで、何もしなければ常に最新のバージョンのイメージを使えるというわけではない。
今回たまたま、 air がインストールできないバージョンになっていた。

Dockerfile

「golang:1」から「golang:1.19」に変更。

# バージョンを 1 → 1.19 に変更。
FROM golang:1.19
RUN go install github.com/cosmtrek/air@latest

バージョンはめんどくさがらずに細かく指定したほうが良さそう。

関連記事