Invalid JSON in `CMD` is rewritten to exec form
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 76/100
Línea de trabajo
Empieza por localizar el manejo de CMD y el análisis de argumentos JSON en el código fuente de Go; después, lee las pruebas de formato de CMD. Reproduce el caso con CMD ["a",] y comprueba que el formato lo deja sin cambios cuando los argumentos no forman un array JSON válido. Añade una prueba de regresión y confirma que pasa con la suite de pruebas del proyecto.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
CMD with an argument list that is not valid JSON gets wrapped into exec form. Docker treats such a line as shell form, so the rewrite changes the command the container runs.
Reproduce
FROM scratch
CMD ["a",]
dockerfmt Dockerfile
Actual
FROM scratch
CMD ["[\"a\",]"]
BuildKit's parser (v0.33.0) reads the original as shell form (/bin/sh -c '["a",]'). The output is exec form that runs a binary literally named ["a",].
Expected
Leave arguments that do not parse as a JSON array unchanged, as Docker does.
Reproduced with v0.5.4 and with main at a5868c2.
- Lenguaje dominante
- Go
- Estrellas
- 626
- Forks
- 23
- Merge medio
- 3 d 17 h
- PR fusionados (30 d)
- 9
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
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.
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
-
/shutdown/ready can fail to return an HTTP response when readiness takes longer than the server write timeoutPosiblemente ocupada @floriankoch la tomó hoy. Abiertotriage
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
envoyproxy/gateway#10562 ·
Los mantenedores suelen responder en 1 día
-
Adding an LDAP group reports every search failure as "LDAP Group DN is not found"Posiblemente ocupada @Daksha1611 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100