From 85fff0cd39b5beea5620a4028bb4f9de1c1aaae2 Mon Sep 17 00:00:00 2001 From: Bernd Ahlers Date: Tue, 28 Jun 2022 19:37:11 +0200 Subject: [PATCH] Don't set runner env variables for default ports This allows the usage of these env variables in a .env file for docker-compose. --- cmd/run.go | 8 ++++---- runner/runner.go | 24 ++++++++++++++++++++---- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/cmd/run.go b/cmd/run.go index 5f0f262..1d2ae34 100644 --- a/cmd/run.go +++ b/cmd/run.go @@ -49,10 +49,10 @@ func init() { } // Flags for all sub-commands - runCmd.PersistentFlags().StringVarP(&runApiPort, "api-port", "g", "9000", "Graylog HTTP API port") - runCmd.PersistentFlags().StringVarP(&runWebPort, "web-port", "w", "8080", "Graylog HTTP web port") - runCmd.PersistentFlags().StringVarP(&runElasticsearchPort, "es-port", "e", "9200", "Elasticsearch port") - runCmd.PersistentFlags().StringVarP(&runMongoDBPort, "mongodb-port", "m", "27017", "MongoDB port") + runCmd.PersistentFlags().StringVarP(&runApiPort, "api-port", "g", runner.GraylogAPIDefaultPort, "Graylog HTTP API port") + runCmd.PersistentFlags().StringVarP(&runWebPort, "web-port", "w", runner.GraylogWebDefaultPort, "Graylog HTTP web port") + runCmd.PersistentFlags().StringVarP(&runElasticsearchPort, "es-port", "e", runner.ElasticsearchDefaultPort, "Elasticsearch port") + runCmd.PersistentFlags().StringVarP(&runMongoDBPort, "mongodb-port", "m", runner.MongoDBDefaultPort, "MongoDB port") runCmd.PersistentFlags().BoolVarP(&runBuildImages, "build-images", "B", false, "Rebuild Docker images") runCmd.PersistentFlags().BoolVar(&runBuildClean, "clean", false, "Run clean server build") runCmd.PersistentFlags().BoolVar(&runBuildWeb, "web", false, "Run server build including the web interface") diff --git a/runner/runner.go b/runner/runner.go index 75f0b13..1442ca3 100644 --- a/runner/runner.go +++ b/runner/runner.go @@ -26,6 +26,11 @@ const ( EnvDebug = "DEBUG" EnvMongoDBPort = "MONGODB_PORT" EnvElasticsearchPort = "ELASTICSEARCH_PORT" + + GraylogAPIDefaultPort = "9000" + GraylogWebDefaultPort = "8080" + ElasticsearchDefaultPort = "9200" + MongoDBDefaultPort = "27017" ) type Config struct { @@ -93,10 +98,21 @@ func getEnv(config Config) []string { env = append(env, fmt.Sprintf("%s=%s", EnvDockerComposeCleanupVolumes, "true")) } - env = append(env, fmt.Sprintf("%s=%s", EnvGraylogAPIHTTPPort, config.Graylog.APIPort)) - env = append(env, fmt.Sprintf("%s=%s", EnvGraylogWebHTTPPort, config.Graylog.WebPort)) - env = append(env, fmt.Sprintf("%s=%s", EnvMongoDBPort, config.MongoDB.Port)) - env = append(env, fmt.Sprintf("%s=%s", EnvElasticsearchPort, config.Elasticsearch.Port)) + // Don't set the environment variables if the default doesn't change to make sure the .env file for + // docker-compose works. Variables defined in the environment are preferred over the one in the .env file by + // docker-compose. + if config.Graylog.APIPort != GraylogAPIDefaultPort { + env = append(env, fmt.Sprintf("%s=%s", EnvGraylogAPIHTTPPort, config.Graylog.APIPort)) + } + if config.Graylog.WebPort != GraylogWebDefaultPort { + env = append(env, fmt.Sprintf("%s=%s", EnvGraylogWebHTTPPort, config.Graylog.WebPort)) + } + if config.MongoDB.Port != MongoDBDefaultPort { + env = append(env, fmt.Sprintf("%s=%s", EnvMongoDBPort, config.MongoDB.Port)) + } + if config.Elasticsearch.Port != ElasticsearchDefaultPort { + env = append(env, fmt.Sprintf("%s=%s", EnvElasticsearchPort, config.Elasticsearch.Port)) + } return env }