Pass at runtime with docker run -e VAR=value, or use env_file in docker-compose.yml to load from a .env file. Never bake secrets into the Docker image. Use Docker secrets or AWS Secrets Manager for production.
How do I handle environment variables in Docker?
More FAQs in dotenv Advanced Techniques in Node.js Variables Expansion, Validation, and Type Casting
Use ${VAR_NAME} syntax. For example, BASE_URL=https://api.yourdomain.com and API_URL=${BASE_URL}/api/v1. When dotenv loads, API_URL becomes https://api.yourdomain.com/api/v1. This avoids duplication.
Use the envalid package. Define a schema with types (str, num, bool, url, email), choices, defaults, and minLength. cleanEnv validates all variables, type-casts them, provides defaults, and throws an error at startup if validation fails.
dotenv-flow automatically loads multiple .env files based on NODE_ENV: .env (base), .env.local (local overrides), .env.${NODE_ENV} (environment-specific), and .env.${NODE_ENV}.local. Later files override earlier ones, providing flexible environment management.
Still have questions?
Browse all our FAQs or reach out to our support team
Want to upskill yourself?
Your learning library
Small steps. Big possibilities.
Find your next course. Build something great.