FusionAuth / fusionauth-containers

Container definitions for docker, kubernetes, helm, and whatever containers come next!
https://fusionauth.io/
219 stars 68 forks source link

fix: Quoting ES_JAVA_OPTS value #74

Closed Bwvolleyball closed 3 years ago

Bwvolleyball commented 3 years ago

Received an error when this value wasn't quoted, and I feel like it should be safe to simply have this value always quoted.

When I was following the tutorial here: https://fusionauth.io/docs/v1/tech/installation-guide/docker/#docker-compose to get started in Docker, I initially received this error:

⇒  curl -o docker-compose.yml https://raw.githubusercontent.com/FusionAuth/fusionauth-containers/master/docker/fusionauth/docker-compose.yml
⇒  curl -o .env https://raw.githubusercontent.com/FusionAuth/fusionauth-containers/master/docker/fusionauth/.env
⇒  docker compose up

Then, I received this:

unexpected character "-" in variable name near "-Xmx512m\n\n# Prior to version 1.19.0, using FUSIONAUTH_MEMORY\nFUSIONAUTH_MEMORY=512M\n# >= 1.19.0, using FUSIONAUTH_APP_MEMORY\nFUSIONAUTH_APP_MEMORY=512M"

Adding the quotes fixed this for me locally.

robotdan commented 3 years ago

@Bwvolleyball what operating system, FusionAuth version, etc. were you using when you saw this error?

I don’t know that this value would need to be quoted to work properly.

Bwvolleyball commented 3 years ago

I am on MacOS big sur, with zsh.

robotdan commented 3 years ago

Ok. Thanks.

The spec for .env says the value should be passed verbatim. So in theory we don’t need quotes.

https://docs.docker.com/compose/compose-file/compose-file-v3/#env_file

The value of VAL is used as is and not modified at all. For example if the value is surrounded by quotes (as is often the case of shell variables), the quotes are included in the value passed to Compose.

If there is an issue with this value, it may be a bug in the way we parse this in our startup scripts.

I’ll have to take a look.

robotdan commented 3 years ago

Unable to recreate. I must be missing some other difference in local configuration.

unexpected character "-" in variable name near "-Xmx512m\n\n# Prior to version 1.19.0, using FUSIONAUTH_MEMORY\nFUSIONAUTH_MEMORY=512M\n# >= 1.19.0, using FUSIONAUTH_APP_MEMORY\nFUSIONAUTH_APP_MEMORY=512M"

Do you know where this came from? Was this an Elasticsearch error?

Planning to roll this back, I think if there is a bug it is more likely in the Elasticsearch elasticsearch-env file we ship that parse the environment variables.

If you have any other details that may helps us narrow down why this occurs on your system, please do let us know or open a GH issue against this repo.

Bwvolleyball commented 3 years ago

The error itself came from the docker compose up command - maybe it's a regression they introduced in a more recent version of Docker?

Here's my docker details if that's useful

image

Bwvolleyball commented 3 years ago

@robotdan - I tested this again fresh after the revert, and I'm still getting this exact error. Are you on the same version of docker compose as what I posted above?

I'm just attempting the vanilla fusionauth startup from the getting started docs:

https://fusionauth.io/docs/v1/tech/installation-guide/docker/#fusionauth

Nothing with elastic search yet