OS: Ubuntu 20.04 LTS
I am attempting to deploy a web app using Keter, the app depends upon several environment variables which I seem to be struggling to make available.
For reference I've been using this resource from the Ubuntu community to try and solve the problem.
I added the environment variables to /etc/environment, the file looks like this:
PATH=...
MY_VAR="something"
MY_VAR2="something-else"
Running echo $MY_VAR correctly prints something.
I read in the aforementioned resource that environment variables are "unbound" when using sudo. When using top I can see that the keter process runs as root so I thought this might be the issue so I followed the instructions using sudo visudo to alter /etc/sudoers. I added the line Defaults env_keep += "MY_VAR MY_VAR2" to the bottom of the file.
I rebooted the server to make sure everything got re-read and can confirm that echo $MY_VAR and sudo echo $MY_VAR both produce the correct result.
Unfortunately this seems to have had no effect on the web app as the log still shows the following error:
my-app: MY_VAR: getEnv: does not exist (no environment variable).
In my project's keter.yml file I have the following lines in my stanza:
forward-env:
- MY_VAR
- MY_VAR2
Any advice on how to get this working would be much appreciated!
It looks like Keter has a poorly documented
env:YAML setting to provide environment variable settings to apps, so instead of forwarding them, try setting them. Inketer.yml, put:and get rid of the
forward-env:setting entirely.Or, this can be put in the global
/opt/keter/etc/keter-config.yamlfile instead, where it will specify environment variables to be passed to all apps.