質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

2回答

2060閲覧

DockerでのGolangの環境構築について

k888

総合スコア123

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2021/11/02 13:46

目的

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の仮想環境を作った際、自作パッケージをどのようにインポートするのかをご教授してほしい。よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

stackoverflowを参照

投稿2021/11/05 03:47

k888

総合スコア123

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

go module を使うと解決すると思います。
https://go.dev/blog/using-go-modules

投稿2021/11/03 23:20

kiino

総合スコア557

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問