首页
学习
活动
专区
圈层
工具
发布

解决Go语言相对路径不一致问题的最佳实践

相对路径解析失效的原因分析 结合典型项目结构,可清晰梳理问题本质: 项目结构如下: my-project/ ├── main.go # 主程序 └── config/ └── app.yaml.../config/app.yaml读取配置,不同启动场景对比: 在my-project/启动:go run main.go正常,工作目录为my-project/,路径可准确定位; 在上级目录启动:go run...main.go)的绝对路径,适配go run调试与二进制部署场景 _, file, _, _ := runtime.Caller(0) // 拼接配置文件路径(项目根目录/config/app.yaml...) configPath := filepath.Join(filepath.Dir(file), "config", "app.yaml") // 读取配置文件 data, err.../config/app.yaml" // 默认路径,提升容错性 } // 读取配置文件 data, err := os.ReadFile(configPath) //

8610
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    使用 Jenkins + KubeVela 完成应用的持续交付

    } 在应用交付时需要将 Golang 服务打包成镜像并以 KubeVela Application 的形式发布到 Kubernetes 集群中,因此在代码仓库中还包含 Dockerfile 以及 app.yaml.../kubevela-demo-cicd-app EXPOSE 8088 在 app.yaml 中,声明了部署的应用包含 5 个不同副本,同时通过 Ingress 的形式发布给集群外部。...# app.yaml apiVersion: core.oam.dev/v1beta1 kind: Application metadata: name: kubevela-demo-app spec.../yq_linux_amd64 eval -o=json '.spec' app.yaml | sed -e 's/GIT_COMMIT/$GIT_COMMIT/g'",...在上述过程中,细心的读者可能还会发现,这套流程不仅能够实现应用服务的升级,而且还可以通过修改 app.yaml 自动完成部署方案的升级,比如将 5 副本应用扩容到 10 副本,或是为容器添加 sidecar

    1.3K30
    领券