This commit is contained in:
2026-01-13 15:18:30 +08:00
parent c87caca88a
commit fdc5a9151f
7 changed files with 52 additions and 5 deletions

31
.dockerignore Normal file
View File

@@ -0,0 +1,31 @@
# 数据目录
data/
# Git 相关
.git/
.gitignore
# IDE 相关
.vscode/
.idea/
.cursor/
# 文档
*.md
# 临时文件
*.log
*.tmp
# 测试文件
*_test.go
# 部署脚本
deploy/
gen_api.ps1
# Docker compose 文件(不需要在镜像中)
docker-compose*.yml
# 其他不需要的文件
.cursorrules

View File

@@ -19,9 +19,10 @@ COPY app/main/api/static /app/static
RUN go build -ldflags="-s -w" -o /app/main app/main/api/main.go RUN go build -ldflags="-s -w" -o /app/main app/main/api/main.go
FROM scratch FROM alpine:latest
RUN apk add --no-cache ca-certificates tzdata netcat-openbsd
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
COPY --from=builder /usr/share/zoneinfo/Asia/Shanghai /usr/share/zoneinfo/Asia/Shanghai COPY --from=builder /usr/share/zoneinfo/Asia/Shanghai /usr/share/zoneinfo/Asia/Shanghai
ENV TZ Asia/Shanghai ENV TZ Asia/Shanghai
@@ -30,4 +31,5 @@ COPY --from=builder /app/main /app/main
COPY --from=builder /app/etc /app/etc COPY --from=builder /app/etc /app/etc
COPY --from=builder /app/static /app/static COPY --from=builder /app/static /app/static
CMD ["./main", "-f", "etc/main.yaml"] ENTRYPOINT ["./main"]
CMD ["-f", "etc/main.yaml"]

View File

@@ -7,6 +7,7 @@ CacheRedis:
- Host: "znc_redis:6379" - Host: "znc_redis:6379"
Pass: "3m3WsgyCKWqz" # Redis 密码,如果未设置则留空 Pass: "3m3WsgyCKWqz" # Redis 密码,如果未设置则留空
Type: "node" # 单节点模式 Type: "node" # 单节点模式
Timeout: 10000 # 连接超时时间毫秒默认2000
JwtAuth: JwtAuth:
AccessSecret: "WUvoIwL-FK0qnlxhvxR9tV6SjfOpeJMpKmY2QvT99lA" AccessSecret: "WUvoIwL-FK0qnlxhvxR9tV6SjfOpeJMpKmY2QvT99lA"
AccessExpire: 2592000 AccessExpire: 2592000

View File

@@ -7,6 +7,7 @@ CacheRedis:
- Host: "znc_redis:6379" - Host: "znc_redis:6379"
Pass: "3m3WsgyCKWqz" # Redis 密码,如果未设置则留空 Pass: "3m3WsgyCKWqz" # Redis 密码,如果未设置则留空
Type: "node" # 单节点模式 Type: "node" # 单节点模式
Timeout: 10000 # 连接超时时间毫秒默认2000
JwtAuth: JwtAuth:
AccessSecret: "WUvoIwL-FK0qnlxhvxR9tV6SjfOpeJMpKmY2QvT99lA" AccessSecret: "WUvoIwL-FK0qnlxhvxR9tV6SjfOpeJMpKmY2QvT99lA"

View File

@@ -26,11 +26,21 @@ func main() {
} }
// 根据 ENV 加载不同的配置文件 // 根据 ENV 加载不同的配置文件
// 在容器内,工作目录是 /app配置文件在 /app/etc/
// 在本地开发时,如果 etc/ 路径不存在,则尝试使用完整路径
var defaultConfigFile string var defaultConfigFile string
if env == "development" { if env == "development" {
defaultConfigFile = "app/main/api/etc/main.dev.yaml" defaultConfigFile = "etc/main.dev.yaml"
// 如果容器内路径不存在,尝试本地开发路径
if _, err := os.Stat(defaultConfigFile); os.IsNotExist(err) {
defaultConfigFile = "app/main/api/etc/main.dev.yaml"
}
} else { } else {
defaultConfigFile = "app/main/api/etc/main.yaml" defaultConfigFile = "etc/main.yaml"
// 如果容器内路径不存在,尝试本地开发路径
if _, err := os.Stat(defaultConfigFile); os.IsNotExist(err) {
defaultConfigFile = "app/main/api/etc/main.yaml"
}
} }
configFile := flag.String("f", defaultConfigFile, "the config file") configFile := flag.String("f", defaultConfigFile, "the config file")
flag.Parse() flag.Parse()

View File

@@ -93,6 +93,7 @@ services:
environment: environment:
- TZ=Asia/Shanghai - TZ=Asia/Shanghai
- ENV=development - ENV=development
command: sh -c "until nc -z znc_redis 6379; do echo '等待 Redis...'; sleep 1; done && echo 'Redis 端口已开放,等待完全就绪...' && sleep 5 && echo '启动应用' && ./main"
depends_on: depends_on:
- mysql - mysql
- redis - redis

View File

@@ -68,6 +68,7 @@ services:
environment: environment:
- TZ=Asia/Shanghai - TZ=Asia/Shanghai
- ENV=production - ENV=production
command: sh -c "until nc -z znc_redis 6379; do echo '等待 Redis...'; sleep 1; done && echo 'Redis 端口已开放,等待完全就绪...' && sleep 5 && echo '启动应用' && ./main"
depends_on: depends_on:
- mysql - mysql
- redis - redis