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の設定を行ったらいいのでしょうか。ご教授をお願いします。