DOCKER_CONFIG env var is parsed inconsistently and incorrectly in fromDockerConfig / fromDockerContext
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 84/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- docker, typescript
- Área
- devops
Línea de trabajo
Empieza en lib/docker-client.ts, en fromDockerConfig y fromDockerContext, y sigue cómo cada punto de entrada resuelve DOCKER_CONFIG y la ruta predeterminada del directorio de inicio. Se considera terminado cuando ambos puntos de entrada usan de forma coherente el directorio de configuración de Docker, incluidas las rutas de config.json y contexts, conservando el comportamiento cuando DOCKER_CONFIG no está definido.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
DOCKER_CONFIG is the path to Docker's config directory (default ~/.docker), but docker-client.ts interprets it two different ways, and neither matches that.
1. fromDockerConfig treats it as the path to config.json
const configPath =
process.env.DOCKER_CONFIG ||
join(homedir(), '.docker', 'config.json');
With DOCKER_CONFIG=/etc/docker-config, this does readFile('/etc/docker-config', 'utf8') on a directory, which fails with EISDIR. That is not ENOENT, so the "config file doesn't exist, use default" branch below doesn't catch it either — the error propagates and fromDockerConfig() throws instead of connecting. It should be join(configDir, 'config.json').
2. fromDockerContext treats it as a directory, then appends .docker
const configDir = process.env.DOCKER_CONFIG || homedir();
const contextsDir = join(configDir, '.docker', 'contexts', 'meta');
const tlsDir = join(configDir, '.docker', 'contexts', 'tls');
The .docker component is only correct for the homedir() fallback. With DOCKER_CONFIG=/etc/docker-config this looks in /etc/docker-config/.docker/contexts/meta rather than /etc/docker-config/contexts/meta, so context lookup fails with Docker contexts directory not found.
The two readings are mutually inconsistent — at most one could be right for a given value of the variable.
Expected
Both should resolve the config directory the same way, e.g.
const configDir = process.env.DOCKER_CONFIG || join(homedir(), '.docker');
// config.json -> join(configDir, 'config.json')
// contexts -> join(configDir, 'contexts', 'meta') / join(configDir, 'contexts', 'tls')
This matches the CLI: https://docs.docker.com/reference/cli/docker/#environment-variables
Notes
Neither path misbehaves when DOCKER_CONFIG is unset, which is presumably why it hasn't come up. Affects main as of a4d3867.
Found while adapting the connection logic in docker-client.ts for another client; I haven't opened a PR. This report was written by Claude (AI-generated) and reviewed by me before filing.
- Lenguaje dominante
- TypeScript
- Estrellas
- 107
- Forks
- 12
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de docker/node-sdk
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 70/100
-
Podman compatibility Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
Todos los issues de docker/node-sdk
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
mksglu/context-mode#1200 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
jaegertracing/jaeger-ui#4506 ·
-
area:desktop area:ui bug platform:macos
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
anthropics/claude-code#96687 ·
-
good first issue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
AOSSIE-Org/DebateAI#582 · 2 comentarios ·