Closed duyaTech closed 5 months ago
设环境变量 CGO_ENABLED为1
这个拉下来的代码没动默认就是1,我部署环境是虚拟机,用的linux,开发环境是windows `# Author: ProgramZmh
FROM golang:1.20-alpine AS backend
WORKDIR /backend COPY . .
ENV GOOS=linux GO111MODULE=on CGO_ENABLED=1
RUN apk add --no-cache gcc musl-dev
RUN go install && \ go build .
FROM node:18 AS frontend
WORKDIR /app COPY ./app .
RUN npm install -g pnpm && \ pnpm install && \ pnpm run build && \ rm -rf node_modules src
FROM alpine
RUN apk update && \ apk upgrade && \ apk add --no-cache wget ca-certificates tzdata && \ update-ca-certificates 2>/dev/null || true && \ rm -rf /var/cache/apk/*
RUN echo "Asia/Shanghai" > /etc/timezone && \ ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
WORKDIR /
COPY --from=backend /backend / COPY --from=frontend /app/dist /app/dist
EXPOSE 8094
CMD ["./chat"] `
说下你的后端编译步骤是什么
配置cgo enabled了么
powershell应该是
$Env:xxx=1
确保是这样执行后go run .
的?
我按照你说的试了下,貌似是C编译器没安装对不?
是的,CGO就是使用C Complied win可以装mingw
ok我装个试试
我安装了mingw了,执行go run . 成功了! 这个应该就是我还没连接虚拟机的mysql报的错 多谢啦,我再研究研究~
是的,信息是无法连接 mysql 配置文件在 ~/config/config.yaml
我找了半天没看到mysql的表结构初始化sql文件,然后我又想去容器部署的chatnio的mysql里导出,但是我不知道咋进去容器的数据库了,我部署环境里本来就已经有了个mysql和redis的容器了,所以我想着编译后端然后连接我已有的mysql和redis,但是我找不到数据库的表结构是啥,咋整QAQ
我之前单独部署的mysql和redis容器我进的去,端口暴露出来了
? 不需要手动初始化
你的意思是你用的docker-compose部署,但是你想用你之前的mysql和rds。
docker-compose 配置好网络就行了呗,比如你想用你之前端口暴露在宿主机的mysql和rds 就改compose的配置
给你点个思路,如果需要宿主机网络可以用
network_mode: host
然后在环境变量里配置host为localhost,确保密码等conf正确即可
昂没错,我就是这个意思!我之前用ReadMe推荐的方式部署的时候确实没有操作过任何数据库,如下: 但是我现在想用外置的数据库,那外置数据库的表结构初始化我现在怎么解决会比较合适呢?
主要原因还是我不熟悉容器相关的操作,就想把这个项目全部用自行编译的方式慢慢拆开学习学习,不再涉及到容器,我一直是做嵌入式开发的,知识点太多我Hold不住= =
你已经有用户/数据、需要迁移数据库了?
如果没数据只是有结构,不需要手动初始化,让 chatnio 自动初始化即可,无需手动操作
我明白你的意思了,就是只要配置好mysql和rds的连接,可以没有表,chatnio会自己创建对不?
肯定
我现在后端编译正常能够运行了,mysql和rds连接成功,然后我在本地起了前端项目,配置的接口地址是localhost:5173,但是登陆失败,用的是初始化的账号密码,这是啥原因啊QAQ,后端控制台和浏览器接口请求如下:
开发环境不需要配置后端地址,或者配置为 http://localhost:5173/api
我是把前端的这个环境变量VITE_BACKEND_ENDPOINT注释了,登录请求地址应该是对的,刚我用postman测试了下,有点不对劲,postman返回如下:
这是啥问题呢,go控制台没有看到接口请求 = =
用vite启动的?你vite conf改啥配置了吗
是不是go运行的端口不是5173呢
是不是go运行的端口不是5173呢
我 vite dev server 配置里有代理后端啊
代理是这样的没改动,我是用yarn dev起的前端
哦不,那好像是mock
em... 你不早说你这是打包了...
哈哈哈哈真是端口的问题,都通了!感谢友友耐心指导!
好
IDE:GoLand Go版本:go1.22.2 windows/amd64 刚下的最新仓库代码,使用ide自动构建依赖,运行go run main.go出现报错,看了Q&A,是我的mysql和redis还没安装导致的吗,刚接触,求教,以下报错截图,看起来不像连接问题,貌似是依赖的函数没了: