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
バージョンはめんどくさがらずに細かく指定したほうが良さそう。