cmd/dockerregistry/main.go
400c3669
 package main
 
 import (
 	"flag"
 	"fmt"
48620b92
 	"math/rand"
1449c5f0
 	"net/http"
 	_ "net/http/pprof"
400c3669
 	"os"
223412fa
 	"runtime"
48620b92
 	"time"
400c3669
 
 	log "github.com/Sirupsen/logrus"
ac04088a
 	"k8s.io/kubernetes/pkg/util/logs"
 
400c3669
 	"github.com/openshift/origin/pkg/cmd/dockerregistry"
39615ee3
 	cmdutil "github.com/openshift/origin/pkg/cmd/util"
 	"github.com/openshift/origin/pkg/cmd/util/serviceability"
3bd83be4
 
 	// install all APIs
 	_ "github.com/openshift/origin/pkg/api/install"
 	_ "k8s.io/kubernetes/pkg/api/install"
 	_ "k8s.io/kubernetes/pkg/apis/extensions/install"
400c3669
 )
 
 func main() {
ac04088a
 	logs.InitLogs()
 	defer logs.FlushLogs()
39615ee3
 	defer serviceability.BehaviorOnPanic(os.Getenv("OPENSHIFT_ON_PANIC"))()
 	defer serviceability.Profile(os.Getenv("OPENSHIFT_PROFILE")).Stop()
 	startProfiler()
1449c5f0
 
48620b92
 	rand.Seed(time.Now().UTC().UnixNano())
223412fa
 	runtime.GOMAXPROCS(runtime.NumCPU())
400c3669
 	flag.Parse()
 
 	// TODO convert to flags instead of a config file?
 	configurationPath := ""
 	if flag.NArg() > 0 {
 		configurationPath = flag.Arg(0)
 	}
 	if configurationPath == "" {
d714558d
 		configurationPath = os.Getenv("REGISTRY_CONFIGURATION_PATH")
 	}
 
 	if configurationPath == "" {
400c3669
 		fmt.Println("configuration path unspecified")
 		os.Exit(1)
 	}
d714558d
 	// Prevent a warning about unrecognized environment variable
 	os.Unsetenv("REGISTRY_CONFIGURATION_PATH")
400c3669
 
 	configFile, err := os.Open(configurationPath)
 	if err != nil {
 		log.Fatalf("Unable to open configuration file: %s", err)
 	}
 
 	dockerregistry.Execute(configFile)
 }
39615ee3
 
 func startProfiler() {
 	if cmdutil.Env("OPENSHIFT_PROFILE", "") == "web" {
 		go func() {
 			runtime.SetBlockProfileRate(1)
4d15ef8f
 			profilePort := cmdutil.Env("OPENSHIFT_PROFILE_PORT", "6060")
 			profileHost := cmdutil.Env("OPENSHIFT_PROFILE_HOST", "127.0.0.1")
 			log.Infof(fmt.Sprintf("Starting profiling endpoint at http://%s:%s/debug/pprof/", profileHost, profilePort))
 			log.Fatal(http.ListenAndServe(fmt.Sprintf("%s:%s", profileHost, profilePort), nil))
39615ee3
 		}()
 	}
 }