目的
DockerでGolangの開発環境を構築したい。
コード
// ディレクトリ構成 project(githubで作ったレポジトリ, 絶対パス: /Uses/[username]/project) |--- app | |--- config | | |___ config.go | |--- main.go | |___ config.ini |--- docker-compose.yml |___ Dockerfile
go
1// main.go 2package main 3 4import ( 5 "app/config" 6 "fmt" 7) 8 9func main() { 10 fmt.Println("Hello World") 11 fmt.Println(config.Config.ApiKey) 12 fmt.Println(config.Config.ApiSecrete) 13}
go
1// config.go 2package config 3 4import ( 5 "log" 6 "os" 7 8 "gopkg.in/ini.v1" 9) 10 11type ConfigList struct { 12 ApiKey string 13 ApiSecret string 14} 15 16var Config ConfigList 17 18func init() { 19 cfg, err := ini.Load("config.ini") 20 if err != nil { 21 log.Printf("Failed to read file: %v", err) 22 os.Exit(1) 23 } 24 25 Config = ConfigList{ 26 ApiKey: cfg.Section("bitflyer").key("apikey").String(), 27 ApiSecret: cfg.Section("bitflyer").key("api_secret").String(), 28 } 29} 30
// config.ini [bitflyer] api_key = asdfhjkll123456789 api_secret = qwertyuiop987654321
// docker-compose.yml version: '3.8' services: app: build: . tty: true volumes: - ./app:/go/src/app
// Dockerfile FROM golang:latest RUN mkdir /go/src/app WORKDIR /go/src/app ENV GO111MODULE=on ENV GOPATH /go ADD ./app /go/src/app/
開発環境
docker-compose exec app go env
とすると
GOPATH="/go" GOROOT="/usr/local/go"
となる。
問題点
docker-compose up -d --build
でコンテナを起動すると
package app/config is not in GOROOT (/usr/local/go/src/app/config)
となり、
main.go
ファイルにおいて、"app/config"
をimport
できない。
dockerを用いてgolangの仮想環境を作った際、自作パッケージをどのようにインポートするのかをご教授してほしい。よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。