大佬们你们的 go 项目打包到部署的流程是怎么样的

2019-05-21 10:23:58 +08:00
 imherer
比如我现在在本地开发完成了,需要打包部署到服务器上。 因为开发的时候好多配置项都是本地的,比如数据库连接啥的,部署到服务器上需要修改为正式的。

总不能在代码里把配置项修改了,然后在打包部署。完了开发的时候再改成测试的吧?
7020 次点击
所在节点    Go 编程语言
27 条回复
loveCoding
2019-05-21 10:26:59 +08:00
./server run --config prod.ini ./server run --config dev.ini ./server run --config local.ini
godgrp
2019-05-21 10:27:52 +08:00
1、配置文件
2、配置管理中心,etcd 等方案很多
kwanzaa
2019-05-21 10:29:22 +08:00
我写的玩具都是读取 Json 文件来获取配置。。。
Immortal
2019-05-21 10:38:19 +08:00
你们配置不读文件的???
imherer
2019-05-21 10:40:39 +08:00
@Immortal 公司项目没用到 go,我自己写着玩的😂
guyeu
2019-05-21 10:49:59 +08:00
emmmm 第一次见到配置 hardcode 在代码里的。。。
tjyao520
2019-05-21 10:50:17 +08:00
os.getenv()
HuasLeung
2019-05-21 10:53:18 +08:00
服务器端灵活使用 git+docker,每次代码更新 git pull 后 docker 直接制作镜像 run 起来
wuchujie
2019-05-21 11:11:26 +08:00
@loveCoding 看了下 b 站的一个开源 web 库就是用这种方法读写配置文件。。但是不知道是 os.getenv() 读取同目录下的 config.json 好呢。还是用这种方法比较好。
Muninn
2019-05-21 11:11:33 +08:00
https://12factor.net/zh_cn/

拿走不谢

这不是个 golang 的问题
messyidea
2019-05-21 11:16:31 +08:00
判断生产环境还是测试环境,然后用不同的数据库
xfriday
2019-05-21 11:22:19 +08:00
k8s+configMap
lonelygo
2019-05-21 11:28:25 +08:00
@imherer 写着玩,配置 hardcode 在代码里,也不科学鸭,换个机子改起来多累。
yanzixuan
2019-05-21 11:29:56 +08:00
@godgrp 哪个配置管理中心最好?有推荐的么?
imherer
2019-05-21 11:33:06 +08:00
@lonelygo 所以来向各位大佬取经了😀
zichen
2019-05-21 11:33:42 +08:00
单独建一个配置文件的代码库,持续集成流水线部署的时候,会直接拉取对应环境的配置文件部署。
loveCoding
2019-05-21 11:36:14 +08:00
@wuchujie 相比读 path,配置文件可能会好点,毕竟跟着代码走,不用维护 path 什么的减少运维成本
wuchujie
2019-05-21 11:46:00 +08:00
@lonelygo
@xfriday
@Muninn
@zichen
@loveCoding
能请教一下 docker 是怎么部署吗?
我现在一直以来的思路是抛开语言层面。比如 nodejs python 这些需要虚拟环境的语言。
我是用 docker 做一个包涵所有虚拟环境库的镜像。然后比如我的代码目录是 /home/deploy/app 我就映射 /home/deploy/app 进去镜像的根目录 /app 然后运行 python app.py 或者 node app.js
以后每次更新代码。我只需要在代码目录 git pull 然后 restart 一下容器就可以。。不用每次更新代码都打包一个镜像。
a134698815
2019-05-21 12:30:15 +08:00
k8s+docker
Kilerd
2019-05-21 13:02:44 +08:00
dotenv

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/566099

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX