Найти местоположение приложения Golang - PullRequest
0 голосов
/ 03 июня 2019

У меня есть приложение Golang, которое развертывается в контейнере через Kubernetes. В рамках службы я хотел бы прочитать файл, который вложен в приложение.

Я изо всех сил пытаюсь выяснить, как установить текущий рабочий каталог в местоположение приложения.

В настоящее время приложение паникует с ошибкой из-за несогласованности относительных путей:

open /workspace/source/package/file.csv: no such file or directory

Я попытался использовать следующий код и добавить имя файла:

var (
_, b, _, _ = runtime.Caller(0)
basepath   = filepath.Dir(b)
)

Однако это все еще не работает. Есть ли способ найти текущее местоположение приложений, а затем добавить имя файла?

Спасибо за помощь!

Ответы [ 2 ]

2 голосов
/ 04 июня 2019

Используйте os.Executable , чтобы найти путь к исполняемому файлу.

b, err := os.Executable()
if err != nil {
    log.Fatal(err)
}
basepath := filepath.Dir(b)
0 голосов
/ 04 июня 2019

Разве вы не можете просто cd перед выполнением приложения? Тогда вы можете использовать относительные пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...