devcontainers / devcontainers/spec

Clarity on how docker compose based devcontainers are built

Open
#331 5 comments 1 reaction 0 assignees View on GitHub
Dominant language
No language data
Stars
5.7k
Forks
496
PR merge metrics
No merged PRs in 30d

Description

The spec does not provide clarity on how to specify the build context for a Docker compose build. Considering the following project structure

```
| .devcontainer
| devcontainer.json
| docker-compose.yml
| Dockerfile
| requirements.txt
```
How should I specify the build context? This is a sample repository: https://github.com/amitds1997/devpod-cache-issue.

Reference `devcontainer.json`:
```json
{
"name": "Debug service",
"dockerComposeFile": "../docker-compose.yml",
"service": "main-app",
"workspaceFolder": "/root",
"shutdownAction": "stopCompose",
}
```

Should it be specified as:

1. In `.devcontainer.json` file, or

```json
{
"build": {
"context": ".."
},
}
```

2. In `docker-compose.yml` file (to indicate that it is one directory above from `devcontainer.json` file where it is used)

```yaml
version: '3'

services:
main-app:
build:
context: ..
restart: always
ports:
- "5003:5000"
command: python -m http.server 5000
```

3. Or, should it be assumed to be running from the `docker-compose.yml`'s directory?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.