如何解决在VSCode中启动调试器之前,请使用CLI工具设置环境变量
我有一个Go应用程序,该应用程序使用Cloud(Heroku)上的Postgres DB并将DB Url设置为根据准则调用Heroku CLI的环境变量。
因此可以使用命令启动该应用
DATABASE_URL=$(heroku config:get DATABASE_URL -a my-db) my-app
现在,我想在调试模式下从VSCode中启动应用程序,但是我找不到在调试开始之前设置DATABASE_URL
变量的正确方法。我已经尝试过prelaunchTask
,但没有成功。我与prelaunchTask
一起使用的配置是这些
launch.json
{
"version": "0.2.0","configurations": [
{
"name": "Launch","type": "go","request": "launch","mode": "auto","prelaunchTask": "setPostgresDbUrl","program": "${fileDirname}","env": {},"args": []
}
]
}
tasks.json
{
"version": "2.0.0","tasks": [
{
"label": "setPostgresDbUrl","type": "shell","command": "bash ./setUrl.sh"
}
]
}
setUrl.sh
#!/usr/bin/env bash
DATABASE_URL=$(heroku config:get DATABASE_URL -a go-batch)
解决方法
我已经能够以稍微不同的方式解决这个问题,即使用 .env
文件来设置从中读取 url 的环境变量。
所以,在项目的根文件夹中,我有一个像这样的 .env
文件
the url may change - to get the current url run the command
# echo $(heroku config:get DATABASE_URL -a go-batch)
DATABASE_URL=postgres://blah-blah-1.eu-west-1.compute.amazonaws.com:5432/blah
然后在 launch.json
中我指定读取这样的环境变量值
{
"version": "0.2.0","configurations": [
{
"name": "LaunchGo","type": "go","request": "launch","mode": "auto",//"preLaunchTask": "setPostgresDbUrl","program": "${fileDirname}","envFile": "${workspaceFolder}/.env","args": []
}
]
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。