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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Go

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

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Docker

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

Q&A

1回答

6440閲覧

dockerからローカルのDBに接続設定をしたいのですが方法がわかりません。

UekiKouji

総合スコア121

Go

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

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Docker

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

0グッド

0クリップ

投稿2017/12/19 22:56

dockerでgolangのginのフレームワークを利用したAPIを作成したいです。
ローカル環境のmysqlに接続できるようにしたいです。
構成を以下のように設定しています。

イメージ説明

//models/user.go

package models import ( "github.com/go-xorm/xorm" _ "github.com/go-sql-driver/mysql" ) var engine *xorm.Engine // init func init() { var err error engine, err = xorm.NewEngine("mysql", "root:55554444@192.168.11.7/bookshelf") if err != nil { panic(err) } } // User type User struct { ID int `json:"id" xorm:"'id'"` Username string `json:"name" xorm:"'nickname'"` } // NewUser func NewUser(id int, username string) User { return User{ ID: id, Username: username, } } // UserRepository type UserRepository struct { } // NewUserRepository func NewUserRepository() UserRepository { return UserRepository{} } // GetByID func (m UserRepository) GetByID(id int) *User { var user = User{ID: id} has, _ := engine.Get(&user) if has { return &user } return nil }

// Dockerfile

FROM golang:alpine AS build-env RUN apk add -U git ADD . /ginsample WORKDIR /ginsample RUN go get github.com/gin-gonic/gin && go get github.com/go-sql-driver/mysql && go get github.com/go-xorm/xorm && CGO_ENABLED=0 go build -o gosample ./ FROM busybox COPY --from=build-env /ginsample/gosample /usr/local/bin/gosample ENTRYPOINT ["/usr/local/bin/gosample"]

docker-composeは設定していません。
以下のようにして実行しています。

$docker build -t gosample ./ $docker run -d -p 8080:8080 gosample

mysqlやdockerの設定を行ったらいいのでしょうか。ご教授をお願いします。

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

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

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

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

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

CHERRY

2017/12/22 01:18

ローカル環境のMySQLというのは、どこにあるのでしょうか? 同じDocker イメージの中? 別のDockerイメージの中? Dockerを動かしているホストOS上? ローカルLANで繋がった別のホスト?
UekiKouji

2017/12/27 22:22

ありがとうございます。
guest

回答1

0

docker runに「--net host」をつけるとdockerホストと繋がっているネットワークブリッジが見えるようになります。(これはLinux向けの話でした。)

IPアドレスを解決するには、HOSTのIPアドレスを環境変数経由でコンテナで渡す。
コンテナの中からは環境変数を使って接続先を決定するようにします。

投稿2017/12/26 00:45

編集2017/12/26 05:25
nobonobo

総合スコア3367

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

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

UekiKouji

2017/12/27 22:23

ご連絡が遅くなりすいません。早速やってみます。
UekiKouji

2017/12/27 22:23

ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問