0
Help us understand the problem. What are the problem?

posted at

Go言語 main.go 以外の関数がundefinedになる問題を解決

Go言語のmain.go以外のファイルに定義した関数がdockerでundefined

go, mysqlコンテナを使用したアプリケーションで、以下のDockerfileの場合にエラーが起きた。

Dockerfile
FROM golang:1.17.6-alpine
RUN apk update && apk add git
WORKDIR /go/src
CMD ["go", "run", "main.go"]

docker-compose up したところ、 コンテナがexit していたため、ログを確認したところ、main.go以外のmianパッケージが読み込まれていないとのことだった.

スクリーンショット 2022-05-06 21.04.40.png

以下のようにコンテナ内でbuildすることにより解決。

Dockerfile
FROM golang:1.17.6-alpine
RUN apk update && apk add git

WORKDIR /go/src
COPY go.mod ./
COPY go.sum ./
RUN go mod download
COPY *.go ./

RUN go build -o /main

CMD ["/main"]

参考

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
0
Help us understand the problem. What are the problem?