Detect running in a container (#6495)
This commit is contained in:
parent
bf612cd608
commit
a60d9b89ce
1 changed files with 23 additions and 1 deletions
|
@ -1,6 +1,7 @@
|
||||||
package server
|
package server
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bufio"
|
||||||
"bytes"
|
"bytes"
|
||||||
"cmp"
|
"cmp"
|
||||||
"context"
|
"context"
|
||||||
|
@ -17,10 +18,12 @@ import (
|
||||||
"net/url"
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
"regexp"
|
||||||
"runtime"
|
"runtime"
|
||||||
"slices"
|
"slices"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
"sync"
|
||||||
|
|
||||||
"github.com/ollama/ollama/api"
|
"github.com/ollama/ollama/api"
|
||||||
"github.com/ollama/ollama/auth"
|
"github.com/ollama/ollama/auth"
|
||||||
|
@ -1087,7 +1090,7 @@ func makeRequest(ctx context.Context, method string, requestURL *url.URL, header
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
req.Header.Set("User-Agent", fmt.Sprintf("ollama/%s (%s %s) Go/%s", version.Version, runtime.GOARCH, runtime.GOOS, runtime.Version()))
|
req.Header.Set("User-Agent", fmt.Sprintf("ollama/%s (%s %s) Go/%s%s", version.Version, runtime.GOARCH, runtime.GOOS, runtime.Version(), deployment()))
|
||||||
|
|
||||||
if s := req.Header.Get("Content-Length"); s != "" {
|
if s := req.Header.Get("Content-Length"); s != "" {
|
||||||
contentLength, err := strconv.ParseInt(s, 10, 64)
|
contentLength, err := strconv.ParseInt(s, 10, 64)
|
||||||
|
@ -1162,3 +1165,22 @@ func verifyBlob(digest string) error {
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var deployment = sync.OnceValue(func() string {
|
||||||
|
if runtime.GOOS == "linux" {
|
||||||
|
file, err := os.Open("/proc/1/cgroup")
|
||||||
|
if err != nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
defer file.Close()
|
||||||
|
anchorPoint := regexp.MustCompile("0::/.*/")
|
||||||
|
scanner := bufio.NewScanner(file)
|
||||||
|
for scanner.Scan() {
|
||||||
|
line := scanner.Text()
|
||||||
|
if anchorPoint.MatchString(line) {
|
||||||
|
return " container"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
})
|
||||||
|
|
Loading…
Reference in a new issue