-
Notifications
You must be signed in to change notification settings - Fork 5.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow an environment variable to be used for an array field (e.g. devices:) #4249
Comments
Relevant Stackoverflow question: https://stackoverflow.com/questions/50919605/docker-compose-variable-substitution-interpolation-with-list-map-or-array-va |
Please, implement this. Tuning networks list via orchestration of compose/swarm configs is really terrible. |
how about the new version, is the new version resolved array environment variable issue ? @dustinlacewell Do you know if there have new solution about this? |
In some cases, I had to use some flashy operations, just in certain situations. extra_hosts: [
"${EXTRA_HOST_0-localhost0:127.0.0.1}", "${EXTRA_HOST_1-localhost1:127.0.0.1}",
"${EXTRA_HOST_2-localhost2:127.0.0.1}", "${EXTRA_HOST_3-localhost3:127.0.0.1}"
]
|
I wonder we could support bash array syntax devices: ${DEVICES[*]} about the .env file format to define an array, using
we also could rely on bash append operator to distinguish arrays definition with use of parentheses in a regular value:
|
I second this, it would be nice to see that in future versions! |
I just came up with a scenario for this: the Google SQL Auth Proxy requires a list of connection names to corresponding database servers. This could be passed as a single array environment variable and expand on services:
cloud_sql_auth_proxy:
image: gcr.io/cloud-sql-connectors/cloud-sql-proxy:latest
platform: linux/amd64
restart: unless-stopped
command: ["--unix-socket=/cloudsql", "${SQL_CONNECTIONS[*]}"]
user: root |
@ndeloof If you're open to it, I could give this a stab, but since it's my first look at the codebases I might be vastly underestimating the issue here. So before I commit to anything, it would be cool to know if I'm at least close with the scope. So if we were to implement your suggestion with bash-like syntax (
Am I even close? Or not at all? |
@boguszj definitely not a "good first issue" to look into. |
Not sure what the syntax would be exactly, but I would like to supply an optional and variable set of devices to an docker-compose.yml service.
Seems more flexible if the variable is a string and literally substituted, but maybe shell array variables should be used instead.
It would be great if this syntax allowed "appending" to an existing hard-coded array.
Without this feature, I can't use docker-compose directly and instead have to do unnatural things with yml substitution scripts and "docker-compose -f -".
PS: I don't know what's up with docker-compose and Swarm "services" on your roadmap. IMO Compose and the yml service definitions are a really nice way to define both simple and complicated environments.
The text was updated successfully, but these errors were encountered: