Don't set runner env variables for default ports

This allows the usage of these env variables in a .env file for
docker-compose.
This commit is contained in:
Bernd Ahlers
2022-06-28 19:37:11 +02:00
parent 938f9e1bc9
commit 85fff0cd39
2 changed files with 24 additions and 8 deletions

View File

@@ -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")

View File

@@ -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
}