add docker-compose run
This commit is contained in:
parent
14ac7ce698
commit
91b1ccdc46
@ -3,5 +3,4 @@ WORKDIR /app/dtm
|
||||
RUN go env -w GO111MODULE=on
|
||||
RUN go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct
|
||||
EXPOSE 8080
|
||||
ENV IS_DOCKER 1
|
||||
CMD [ "/bin/bash", "-c", "go build app/main.go && /app/dtm/main" ]
|
||||
|
||||
@ -43,7 +43,7 @@ DTM是首款golang的分布式事务管理器,优雅的解决了幂等、空
|
||||
`cp conf.sample.yml conf.yml # 修改conf.yml`
|
||||
|
||||
### 启动并运行saga示例
|
||||
`go run app/main.go`
|
||||
`go run app/main.go saga`
|
||||
|
||||
# 开始使用
|
||||
|
||||
|
||||
16
app/main.go
16
app/main.go
@ -24,12 +24,8 @@ func main() {
|
||||
}
|
||||
app := examples.BaseAppNew()
|
||||
examples.BaseAppSetup(app)
|
||||
if len(os.Args) == 1 || os.Args[1] == "saga" { // 默认情况下,展示saga例子
|
||||
dtmsvr.PopulateMysql()
|
||||
dtmsvr.MainStart()
|
||||
examples.SagaSetup(app)
|
||||
examples.BaseAppStart(app)
|
||||
examples.SagaFireRequest()
|
||||
if len(os.Args) == 1 || os.Args[1] == "dtmsvr" { // 只启动dtmsvr
|
||||
go dtmsvr.MainStart()
|
||||
} else if os.Args[1] == "xa" { // 启动xa示例
|
||||
dtmsvr.PopulateMysql()
|
||||
dtmsvr.MainStart()
|
||||
@ -37,8 +33,12 @@ func main() {
|
||||
examples.XaSetup(app)
|
||||
examples.BaseAppStart(app)
|
||||
examples.XaFireRequest()
|
||||
} else if os.Args[1] == "dtmsvr" { // 只启动dtmsvr
|
||||
go dtmsvr.MainStart()
|
||||
} else if os.Args[1] == "saga" { // 启动saga示例
|
||||
dtmsvr.PopulateMysql()
|
||||
dtmsvr.MainStart()
|
||||
examples.SagaSetup(app)
|
||||
examples.BaseAppStart(app)
|
||||
examples.SagaFireRequest()
|
||||
} else if os.Args[1] == "all" { // 运行所有示例
|
||||
dtmsvr.PopulateMysql()
|
||||
examples.PopulateMysql()
|
||||
|
||||
@ -3,6 +3,7 @@ package common
|
||||
import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"os"
|
||||
"regexp"
|
||||
"strings"
|
||||
"time"
|
||||
@ -88,9 +89,10 @@ func (op *tracePlugin) Initialize(db *gorm.DB) (err error) {
|
||||
}
|
||||
|
||||
func GetDsn(conf map[string]string) string {
|
||||
if IsDocker() {
|
||||
if IsDockerCompose() {
|
||||
conf["host"] = strings.Replace(conf["host"], "localhost", "host.docker.internal", 1)
|
||||
}
|
||||
logrus.Printf("is docker: %t IS_DOCKER_COMPOSE: %s and conf host: %s", IsDockerCompose(), os.Getenv("IS_DOCKER_COMPOSE"), conf["host"])
|
||||
return fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=true&loc=Local", conf["user"], conf["password"], conf["host"], conf["port"], conf["database"])
|
||||
}
|
||||
|
||||
|
||||
@ -188,7 +188,7 @@ func init() {
|
||||
// RestyClient.SetRetryCount(2)
|
||||
// RestyClient.SetRetryWaitTime(1 * time.Second)
|
||||
RestyClient.OnBeforeRequest(func(c *resty.Client, r *resty.Request) error {
|
||||
if IsDocker() {
|
||||
if IsDockerCompose() {
|
||||
r.URL = strings.Replace(r.URL, "localhost", "host.docker.internal", 1)
|
||||
}
|
||||
logrus.Printf("requesting: %s %s %v %v", r.Method, r.URL, r.Body, r.QueryParam)
|
||||
@ -273,6 +273,6 @@ func GetFuncName() string {
|
||||
return runtime.FuncForPC(pc).Name()
|
||||
}
|
||||
|
||||
func IsDocker() bool {
|
||||
return os.Getenv("IS_DOCKER") != ""
|
||||
func IsDockerCompose() bool {
|
||||
return os.Getenv("IS_DOCKER_COMPOSE") != ""
|
||||
}
|
||||
|
||||
22
compose.yml
22
compose.yml
@ -1,5 +1,13 @@
|
||||
version: '3.3'
|
||||
services:
|
||||
api:
|
||||
build: .
|
||||
environment:
|
||||
IS_DOCKER_COMPOSE: '1'
|
||||
ports:
|
||||
- '80:4005'
|
||||
volumes:
|
||||
- .:/app/dtm
|
||||
mysql:
|
||||
image: 'mysql:5.7'
|
||||
environment:
|
||||
@ -13,17 +21,3 @@ services:
|
||||
]
|
||||
ports:
|
||||
- '3306:3306'
|
||||
services:
|
||||
dtm:
|
||||
image: 'mysql:5.7'
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: my-secret-pw
|
||||
TZ: Asia/shanghai
|
||||
command:
|
||||
[
|
||||
'--character-set-server=utf8mb4',
|
||||
'--collation-server=utf8mb4_unicode_ci',
|
||||
'--default-time-zone=+8:00',
|
||||
]
|
||||
ports:
|
||||
- '3306:3306'
|
||||
Loading…
x
Reference in New Issue
Block a user