mirror of
https://github.com/fnproject/fn.git
synced 2022-10-28 21:29:17 +03:00
Support _FILE postfixes for environment variables (#1142)
* Support _FILE postfixes for environment variables to be loaded from files * fix gofmt error
This commit is contained in:
@@ -2,10 +2,12 @@ package server
|
||||
|
||||
import (
|
||||
"context"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"os/signal"
|
||||
"runtime"
|
||||
"strconv"
|
||||
"strings"
|
||||
"syscall"
|
||||
|
||||
"github.com/fnproject/fn/api/common"
|
||||
@@ -21,6 +23,11 @@ func init() {
|
||||
func getEnv(key, fallback string) string {
|
||||
if value, ok := os.LookupEnv(key); ok {
|
||||
return value
|
||||
} else if value, ok := os.LookupEnv(key + "_FILE"); ok {
|
||||
dat, err := ioutil.ReadFile(value)
|
||||
if err == nil {
|
||||
return string(dat)
|
||||
}
|
||||
}
|
||||
return fallback
|
||||
}
|
||||
@@ -34,6 +41,16 @@ func getEnvInt(key string, fallback int) int {
|
||||
panic(err) // not sure how to handle this
|
||||
}
|
||||
return i
|
||||
} else if value, ok := os.LookupEnv(key + "_FILE"); ok {
|
||||
dat, err := ioutil.ReadFile(value)
|
||||
if err == nil {
|
||||
var err error
|
||||
var i int
|
||||
if i, err = strconv.Atoi(strings.TrimSpace(string(dat))); err != nil {
|
||||
panic(err) // not sure how to handle this
|
||||
}
|
||||
return i
|
||||
}
|
||||
}
|
||||
return fallback
|
||||
}
|
||||
|
||||
@@ -19,6 +19,14 @@ docker run. For example:
|
||||
docker run -e VAR_NAME=VALUE ...
|
||||
```
|
||||
|
||||
Additionally you may desire to load the environment variables from files, for example if you are using Docker Secrets, in that case you may append
|
||||
`_FILE` to the end of any variable name and specify the file location. The variable will be filled with the file's contents. For example:
|
||||
|
||||
```sh
|
||||
docker run -e VAR_NAME_FILE=/path/to/secret ...
|
||||
```
|
||||
|
||||
|
||||
| Env Variables | Description | Default values |
|
||||
| --------------|-------------|----------------|
|
||||
| `FN_DB_URL` | The database URL to use in URL format. See [Databases](databases/README.md) for more information. | sqlite3:///app/data/fn.db |
|
||||
|
||||
Reference in New Issue
Block a user