How do I convert a .env file to Docker Compose or Kubernetes YAML?
Paste your .env file and select an output format: Docker Compose inline environment, Docker Compose env_file reference, Kubernetes ConfigMap, Kubernetes Secret (base64 or stringData), or docker run -e flags. The tool parses KEY=VALUE pairs, strips quotes, detects sensitive keys (passwords, tokens, API keys), and generates valid YAML or shell commands. Everything runs in your browser — your secrets never leave your device.
DATABASE_URL=postgres://localhost/db REDIS_URL=redis://localhost:6379 API_KEY=sk-abc123 PORT=3000
# docker-compose.yml
services:
app:
environment:
- DATABASE_URL=postgres://localhost/db
- REDIS_URL=redis://localhost:6379
- API_KEY=sk-abc123
- PORT=3000.env to Docker/K8s Converter
Convert .env files to Docker Compose environment blocks, Kubernetes ConfigMaps, Secrets, or docker run flags. Sensitive keys are detected automatically. Validate your .env first →
Output Format Reference
| Format | Use Case | Sensitive Data? |
|---|---|---|
| Docker Compose (inline) | Variables directly in docker-compose.yml | Not recommended — values visible in file |
| Docker Compose (env_file) | Reference .env file from compose | Better — .env excluded from VCS via .gitignore |
| K8s ConfigMap | Non-sensitive config in Kubernetes | Not for secrets — data is plain text |
| K8s Secret (base64) | Standard K8s secrets (base64 encoded) | Base64 is encoding, not encryption — use RBAC + encryption at rest |
| K8s Secret (stringData) | Human-readable secrets (auto-encoded by K8s) | Same security as data: — encoded on apply |
| docker run -e | One-off container runs with env vars | Visible in process list — avoid for secrets |
Tips & Best Practices
Docker Compose env_file and environment behave differently
env_file loads a .env file at container start. environment sets vars directly in the compose file. env_file values can be overridden by environment. Use env_file for defaults and environment for per-service overrides.
Kubernetes ConfigMaps are not for secrets — use Secrets instead
ConfigMaps are stored in plain text in etcd and visible to anyone with cluster read access. Use Kubernetes Secrets for credentials, API keys, and certificates. Even better: use a secrets manager like Vault, AWS Secrets Manager, or sealed-secrets.
Generate Kubernetes ConfigMap YAML from .env for fast deployments
Instead of manually creating ConfigMap YAML, convert your .env file directly. Split sensitive vars into a Secret and non-sensitive vars into a ConfigMap. This ensures your K8s manifests stay in sync with your local dev environment.
Base64 encoding in K8s Secrets is not encryption
Kubernetes Secrets are just Base64-encoded — anyone with kubectl access can decode them instantly. Enable etcd encryption at rest, use RBAC to limit Secret access, and consider external secrets managers for production workloads.
Frequently Asked Questions
How do I convert a .env file to a Kubernetes ConfigMap?
What is the difference between Kubernetes Secret data and stringData?
Does the tool detect sensitive environment variables?
Can I use the output directly in my Docker Compose or Kubernetes project?
Related Convert Tools
CSV ↔ JSON Converter
Convert between CSV and JSON formats with custom delimiters
URL Encoder & Decoder
Encode and decode URLs with encodeURIComponent and encodeURI
JSON ↔ YAML Converter
Convert between JSON and YAML for Kubernetes, Docker, and CI/CD configs
HTML Entity Encoder
Encode and decode HTML entities, special characters, and symbols