Is your feature request related to a problem? Please describe.
I was creating a container deployment with az container create ... -e some-var=someValue and I got an error message that the variable name is invalid. To be precise, this error:
ERROR: (InvalidContainerEnvironmentVariable) The environment variable name in container 'mycontainer' of container group 'mycontainer' is invalid. A valid environment variable name must start with alphabetic character or '_', followed by a string of alphanumeric characters or '_' (e.g. 'my_name', or 'MY_NAME', or 'MyName').
Code: InvalidContainerEnvironmentVariable
Describe the solution you'd like
Env vars are usually used to pass configuration settings to the container. If the software is using some third party package that expects config settings with a dash in the name, there's nothing we can do to change it. The dash in env vars is supported in docker-compose (for example) and property names with dashes are supported in appsettings.config in .net core apps. So, supporting env vars with dashes in the name will be good (in a Linux environment, using the shell export command it's not possible to have an dash in the name, but it is possible to have it when using the env command, so the shells can support it)
Describe alternatives you've considered
The alternative will be outside of az CLI scope. Perhaps in .net core settings to interpret a triple underscore as a dash or some other way to escape it for env vars. For our own programs, we can change the settings not to use a dash, but for third party tools, there's nothing we can do.
Additional context
Not sure what mechanism az will use to set the env vars in the Azure deployment, but the command env in Linux works for setting env vars with dashes in the name. I have tested with docker-compose setting env vars with dashes and then reading them from a .net core app in a container and they do work
Is your feature request related to a problem? Please describe.
I was creating a container deployment with
az container create ... -e some-var=someValueand I got an error message that the variable name is invalid. To be precise, this error:Describe the solution you'd like
Env vars are usually used to pass configuration settings to the container. If the software is using some third party package that expects config settings with a dash in the name, there's nothing we can do to change it. The dash in env vars is supported in docker-compose (for example) and property names with dashes are supported in appsettings.config in .net core apps. So, supporting env vars with dashes in the name will be good (in a Linux environment, using the shell
exportcommand it's not possible to have an dash in the name, but it is possible to have it when using theenvcommand, so the shells can support it)Describe alternatives you've considered
The alternative will be outside of
azCLI scope. Perhaps in .net core settings to interpret a triple underscore as a dash or some other way to escape it for env vars. For our own programs, we can change the settings not to use a dash, but for third party tools, there's nothing we can do.Additional context
Not sure what mechanism
azwill use to set the env vars in the Azure deployment, but the commandenvin Linux works for setting env vars with dashes in the name. I have tested with docker-compose setting env vars with dashes and then reading them from a .net core app in a container and they do work