使用config.toml文件部署Golang应用程序(api)

使用config.toml文件部署Golang应用程序(api),go,Go,我创建了一个小的GolangAPI(nrfapi),其中包括一个config.toml文件。我想在其他ubuntu虚拟机上部署api,因此我使用“GOOS=linux-GOARCH=amd64-go-build”构建api,然后将构建文件scp到VM/var/www/go-diretory。我还在/etc/systemd/system目录中创建一个以.service结尾的单元文件(nrf.service)。在.service文件中,我有以下配置 [Unit] Description= insta

我创建了一个小的GolangAPI(nrfapi),其中包括一个config.toml文件。我想在其他ubuntu虚拟机上部署api,因此我使用“GOOS=linux-GOARCH=amd64-go-build”构建api,然后将构建文件scp到VM/var/www/go-diretory。我还在/etc/systemd/system目录中创建一个以.service结尾的单元文件(nrf.service)。在.service文件中,我有以下配置

[Unit]
Description= instance to serve nrf api
After=network.target

[Service]
User=root
Group=www-data

ExecStart=/var/www/go/nrfapi)

[Install]
WantedBy=multi-user.target

错误

但是,在使用以下命令启动API之后

sudo系统控制启动nrfapi sudo systemctl启用nrfapi

API没有运行。我从上面的错误消息中意识到API需要config.toml文件配置


我现在的问题是,我不知道应该将config.toml文件放在哪个目录中,这样golang api就可以从那里读取配置参数。谁能帮我解决这个问题?如何执行此操作?

如果使用go scrips中文件的相对路径,则可执行文件将相对于当前工作目录查找这些文件。要更改
systemd
中的工作目录,只需将
WorkingDirectory
参数添加到
Service
部分:

[Service]
WorkingDirectory=/var/www/go
并将
config.toml
文件放入
/var/www/go
dir中


您还可以使用以下库将静态文件嵌入Go二进制文件:

如果您使用Go scrips中文件的相对路径,则可执行文件将相对于当前工作目录查找这些文件。要更改
systemd
中的工作目录,只需将
WorkingDirectory
参数添加到
Service
部分:

[Service]
WorkingDirectory=/var/www/go
并将
config.toml
文件放入
/var/www/go
dir中


您还可以使用此库将静态文件嵌入到Go二进制文件中:

您是否尝试更改服务器的
工作目录
?您好,是的,我尝试过,并且可以正常工作。谢谢您是否尝试更改服务器的
工作目录
。谢谢