diff --git a/Dockerfile b/Dockerfile index 5e027ae..115deb2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,5 @@ # Build stage -FROM crpi-8s2ierii2xan4klg.cn-beijing.personal.cr.aliyuncs.com/texpixel/golang:1.20-apline AS builder - +FROM golang:1.20-alpine AS builder WORKDIR /app @@ -16,7 +15,7 @@ RUN go mod download && \ CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o doc_ai ./main.go # Runtime stage -FROM crpi-8s2ierii2xan4klg.cn-beijing.personal.cr.aliyuncs.com/texpixel/alpine:latest +FROM alpine:latest # Set timezone RUN apk add --no-cache tzdata && \ diff --git a/config/config_dev.yaml b/config/config_dev.yaml index d66c867..f8523c8 100644 --- a/config/config_dev.yaml +++ b/config/config_dev.yaml @@ -4,16 +4,16 @@ server: database: driver: mysql - host: 182.92.150.161 - port: 3006 + host: mysql + port: 3306 # 容器内部端口,不是宿主机映射的 3006 username: root - password: yoge@coder%%%123321! + password: texpixel#pwd123! dbname: doc_ai max_idle: 10 max_open: 100 redis: - addr: 182.92.150.161:6379 + addr: redis:6379 # 容器内部端口,不是宿主机映射的 6079 password: yoge@123321! db: 0 diff --git a/config/config_prod.yaml b/config/config_prod.yaml index 1dba172..62cb97c 100644 --- a/config/config_prod.yaml +++ b/config/config_prod.yaml @@ -18,7 +18,7 @@ redis: db: 0 limit: - formula_recognition: 2 + formula_recognition: 10 log: appName: document_ai diff --git a/docker-compose.yml b/docker-compose.yml index e2c8afd..f20d439 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,27 +1,50 @@ -version: '3.8' - services: + doc_ai: + build: . + container_name: doc_ai + ports: + - "8024:8024" + volumes: + - ./config:/app/config + - ./logs:/app/logs + networks: + - backend + depends_on: + mysql: + condition: service_healthy + redis: + condition: service_started + command: ["-env", "dev"] + restart: always + mysql: image: mysql:8.0 container_name: mysql environment: - MYSQL_ROOT_PASSWORD: 123456 # 设置root用户密码 - MYSQL_DATABASE: document_ai # 设置默认数据库名 - MYSQL_USER: bitwsd_document # 设置数据库用户名 - MYSQL_PASSWORD: 123456 # 设置数据库用户密码 + MYSQL_ROOT_PASSWORD: texpixel#pwd123! + MYSQL_DATABASE: doc_ai + MYSQL_USER: texpixel + MYSQL_PASSWORD: texpixel#pwd123! ports: - - "3306:3306" # 映射宿主机的3306端口到容器内的3306 + - "3006:3306" volumes: - - mysql_data:/var/lib/mysql # 持久化MySQL数据 + - mysql_data:/var/lib/mysql networks: - backend + healthcheck: + test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-uroot", "-ptexpixel#pwd123!"] + interval: 5s + timeout: 5s + retries: 10 + start_period: 30s restart: always redis: image: redis:latest container_name: redis + command: redis-server --requirepass "yoge@123321!" ports: - - "6379:6379" # 映射宿主机的6379端口到容器内的6379 + - "6079:6379" networks: - backend restart: always diff --git a/go.mod b/go.mod index 7eddce1..b027928 100644 --- a/go.mod +++ b/go.mod @@ -14,6 +14,7 @@ require ( github.com/redis/go-redis/v9 v9.7.0 github.com/rs/zerolog v1.33.0 github.com/spf13/viper v1.19.0 + golang.org/x/crypto v0.23.0 gopkg.in/natefinch/lumberjack.v2 v2.2.1 gorm.io/driver/mysql v1.5.7 gorm.io/gorm v1.25.12 @@ -68,7 +69,6 @@ require ( go.uber.org/atomic v1.9.0 // indirect go.uber.org/multierr v1.9.0 // indirect golang.org/x/arch v0.8.0 // indirect - golang.org/x/crypto v0.23.0 // indirect golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect golang.org/x/net v0.25.0 // indirect golang.org/x/sys v0.20.0 // indirect diff --git a/main.go b/main.go index b962566..12ed5e7 100644 --- a/main.go +++ b/main.go @@ -10,14 +10,14 @@ import ( "syscall" "time" - "gitea.com/bitwsd/document_ai/pkg/cors" - "gitea.com/bitwsd/document_ai/pkg/log" - "gitea.com/bitwsd/document_ai/pkg/middleware" "gitea.com/bitwsd/document_ai/api" "gitea.com/bitwsd/document_ai/config" "gitea.com/bitwsd/document_ai/internal/storage/cache" "gitea.com/bitwsd/document_ai/internal/storage/dao" "gitea.com/bitwsd/document_ai/pkg/common" + "gitea.com/bitwsd/document_ai/pkg/cors" + "gitea.com/bitwsd/document_ai/pkg/log" + "gitea.com/bitwsd/document_ai/pkg/middleware" "gitea.com/bitwsd/document_ai/pkg/sms" "github.com/gin-gonic/gin" ) @@ -42,14 +42,6 @@ func main() { cache.InitRedisClient(config.GlobalConfig.Redis) sms.InitSmsClient() - // 初始化Redis - // cache.InitRedis(config.GlobalConfig.Redis.Addr) - - // 初始化OSS客户端 - // if err := oss.InitOSS(config.GlobalConfig.OSS); err != nil { - // logger.Fatal("Failed to init OSS client", logger.Fields{"error": err}) - // } - // 设置gin模式 gin.SetMode(config.GlobalConfig.Server.Mode) @@ -78,6 +70,6 @@ func main() { if err := srv.Shutdown(context.Background()); err != nil { panic(err) } - time.Sleep(time.Second * 3) + time.Sleep(time.Second * 5) dao.CloseDB() }