What this tool converts
This tool parses standard .env-file syntax (KEY=value per line, comments and blank lines ignored, quotes stripped) and emits a ready-to-paste docker-compose environment block in one of two styles: Inline lists every variable directly under a services.app.environment key, while env_file emits a short snippet pointing at env_file: - .env so Compose loads the file itself at runtime instead of inlining values into the YAML.
The generated snippet always uses a placeholder service name (app) since the tool has no way to know your actual service name from .env content alone — rename it to match your compose file before pasting it in.
When to use it
Use it when scaffolding a new docker-compose.yml from an existing .env file and you don't want to hand-transcribe every variable into YAML's list syntax (easy to mistype the leading - and indentation). The Inline style is useful for small services or when you want the environment visible directly in version control; the env_file style is better when the .env file itself is already gitignored and you just need the one-line reference added to your compose service.
If you actually need the .env content as a JSON object instead of YAML — for a Node config loader or a test fixture — use the companion ENV to JSON tool on the same input.
Example
Input DB_HOST=localhost\nDB_PORT=5432 with Inline style produces:\nservices:\n app:\n environment:\n - DB_HOST=localhost\n - DB_PORT=5432\nSwitching to env_file style instead produces a fixed three-line snippet referencing env_file: - .env, regardless of how many variables are in the input, since it points at the file rather than listing values.
How to use the ENV to Docker Compose tool
- 1
Paste .env content
Standard KEY=value lines — comments and blank lines are skipped automatically.
- 2
Pick a style
Inline lists every variable directly in the YAML; env_file references the .env file itself.
- 3
Click Convert
The output is a ready-to-paste docker-compose environment block under a placeholder "app" service.
- 4
Share it
Copy a permalink to hand the exact .env content and chosen style to a teammate — see the privacy note before sharing real secrets this way.
Frequently asked questions
Why is the service always named "app"?
The tool has no information about your actual compose file's service names — it's a placeholder. Rename services.app to your real service name before pasting the snippet into your docker-compose.yml.
What's the difference between Inline and env_file style?
Inline writes every KEY=value pair directly into the compose YAML under environment:, making them visible in version control. env_file instead emits a reference to the .env file itself (env_file: - .env), so Compose loads values from the file at runtime — better when the .env file is gitignored.
How is this different from the ENV to JSON tool?
Same input parsing, different output target — ENV to JSON produces a JSON object for use in code or config loaders, while this tool produces YAML meant to paste directly into a docker-compose.yml file.
Is my .env content uploaded anywhere, and is the permalink safe to share?
Parsing and generation run entirely in your browser — nothing is sent to a server. But the permalink encodes your full .env content into the URL so it can restore the same input later; if it contains real credentials, don't share that link publicly.
Related on TechLogHub
Related Converter Tools
Unix Timestamp Converter with Milliseconds
Convert Unix timestamps to human-readable dates and vice versa
ENV to JSON
Convert .env files to JSON format
Query String to JSON
Parse URL query strings into JSON objects
JSON to Query String
Convert JSON objects to URL query strings
CSV to JSON Converter with Semicolon and Tab Delimiters
Convert CSV data to JSON array format
JSON to CSV Converter with Headers from Every Key
Convert JSON arrays to CSV format
Get the next tool before you need it
One email a week: new and trending developer tools, fresh comparisons, and what shipped. Unsubscribe in one click.

