devcontainers / devcontainers/cli

devcontainer always started with `"Init": true` no matter the settings

Ouverte
#726 5 commentaires 0 réactions 1 personne assignée Réclamée par @chrmarti Voir sur GitHub
info-needed
Langage dominant
TypeScript
Étoiles
3k
Forks
457
Merge moyen
13 h 17 min
PR mergées (30 j)
6

Description

I'm trying to set `init` to `false` for a devcontainer where I need to control PID 1.

However, no matter how I set init to false, the resulting dev container has init always set to true:
```
╰─ docker inspect life_life_1 | grep Init
"Init": true
```

This also shows in the logs:
```
[2024-01-19T17:33:17.093Z] Docker Compose override file for creating container:
version: "3.8"

services:
'life':
entrypoint: ["/bin/sh", "-c", "echo Container started\n
trap \"exit 0\" 15\n
\n
exec \"$$@\"\n
while sleep 1 & wait $$!; do :; done", "-"]
command: ["/sbin/init"]
init: true
privileged: true
cap_add:
- SYS_PTRACE
- SYS_ADMIN
security_opt:
- seccomp=unconfined
labels:
- 'devcontainer.local_folder=/home/workspaces/ife'
- 'devcontainer.config_file=/home/workspaces/life/.devcontainer/devcontainer.json'
volumes:
- vscode:/vscode
volumes:

vscode:
external: true
```

Here is what I've tried:

1. Setting it in `devcontainer.json`.
This seems to be the most obvious one. Although the [default should actually be `false`](https://containers.dev/implementors/json_reference). This doesn't work, the resulting container will still have `"Init": true`.
```json
{
"name": "life",
"init": false,
...
}
```
2. Setting it in `docker-compose.yml`.
Of course I also set it in my docker-compose.yml, but that just got overridden by devcontainer cli.
3. Setting it in `Dockerfile`.
I've also set it via
```
LABEL devcontainer.metadata='[{ \
"init": false \
}]'
```
as described in the docs, but still in the resulting container it's true.

I've set all these at once to false and still the resulting container has it set to true.

The line of code in question is this one:
https://github.com/devcontainers/cli/blob/47354089b2eacf89b713dde767ca5536c2d6fa60/src/spec-node/imageMetadata.ts#L172
But where could it possibly get a `true` from?

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.