Skip to content

Commit 837dcc3

Browse files
committed
feat: improve naming conventions for docker-compose
1 parent 87835cb commit 837dcc3

6 files changed

Lines changed: 40 additions & 3 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
.env
22
.*/
3+
docker-compose.local.yml

bin/init.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,9 @@ fi
8686
read -p "Enter a name for your devcontainer (it should be unique per project) [$FOLDER_NAME]: " DEVCONTAINER_NAME
8787
DEVCONTAINER_NAME="${DEVCONTAINER_NAME:-$FOLDER_NAME}"
8888

89-
## Copy over required docker-compose.yml.
90-
cp "$DEVCONTAINER_FOLDER/docker-compose.overrides.yml.sample" "$TARGET_DIR/docker-compose.overrides.yml"
89+
## Copy over required docker-compose files
90+
cp "$DEVCONTAINER_FOLDER/docker-compose.shared.yml.sample" "$DEVCONTAINER_FOLDER/docker-compose.shared.yml"
91+
cp "$DEVCONTAINER_FOLDER/docker-compose.local.yml.sample" "$DEVCONTAINER_FOLDER/docker-compose.local.yml"
9192
echo "services: {}" > "$TARGET_DIR/docker-compose.yml"
9293

9394
## Copy over devcontainer and set the name and version

devcontainer.json.sample

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
"dockerComposeFile": [
44
"docker-compose.yml",
55
"magento2-devcontainer/compose/2.4.8/docker-compose.yml",
6-
"docker-compose.overrides.yml"
6+
"magento2-devcontainer/docker-compose.shared.yml",
7+
"magento2-devcontainer/docker-compose.local.yml"
78
],
89
"workspaceFolder": "/workspace",
910
"service": "php",

docker-compose.local.yml.sample

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
services: {}

docs/docker-compose.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Docker Compose File Structure
2+
3+
The devcontainer uses multiple Docker Compose files loaded in order, with later files overriding earlier ones:
4+
5+
1. **docker-compose.yml** - Sets the Docker Compose working directory (do not modify)
6+
2. **compose/{version}/docker-compose.yml** - Version-specific service definitions from devcontainer submodule
7+
3. **docker-compose.shared.yml** - Shared config for the project (committed to project repo)
8+
4. **docker-compose.local.yml** - Local developer overrides (gitignored, not committed)
9+
10+
## When to Use Each File
11+
12+
| File | Purpose | Committed |
13+
| --------------------------- | -------------------------------- | --------- |
14+
| `docker-compose.yml` | Sets Compose working directory | Yes |
15+
| `docker-compose.shared.yml` | Shared project-specific config | Yes |
16+
| `docker-compose.local.yml` | Personal developer overrides | No |
17+
18+
### docker-compose.yml
19+
20+
Do not modify this file. It exists only to set the Docker Compose working directory to `.devcontainer/`. This ensures all relative paths in other compose files resolve correctly.
21+
22+
### docker-compose.shared.yml
23+
24+
- Volume mounts for the workspace
25+
- Environment variables shared across the team
26+
- Service configuration specific to the project
27+
28+
### docker-compose.local.yml
29+
30+
- Local volume mounts (e.g., SSH keys, custom configs)
31+
- Resource limits for your machine
32+
- Additional services for local debugging
33+
- Environment variable overrides

0 commit comments

Comments
 (0)