feat(.env): allow environment variables to be passed dynamically to a container #1699
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In a production environment, keeping the environment variables inside the docker image is not recommended.
In production, we will most likely use Kubernetes or a container service like ECS where environment variables are passed dynamically to the container from a configmap or a secrets store. with the current configuration the dynamically passed environment variables are overridden by the local .env file that was present during the build of the container.
when I removed the .env file from the docker file I noticed that TypeORM Cli wasn't working correctly because it uses "env-cmd" which requires a .env but isn't necessary in an environment where the variables are dynamic.
so I created a little script "typeorm-cli.js" that would run typeorm CLI with "env-cmd" when needed and without it in a production environment such as kubernetes or ECS