Dmidecode ir dentro de programa que se ejecuta en un kubernetes pod

0

Pregunta

Tengo una rutina de ir ejecutando en la ventana acoplable contenedor. Necesito la salida del comando dmidecode. Pero su entrada en blanco.

Ir a:

func main() {

    cmd := exec.Command("dmidecode","-t 1")
    x,_ := cmd.Output()
    fmt.Println("output =======", string(x))

}

Docker run:

ventana acoplable ejecutar --device /dev/mem:/dev/mem --cap-añadir SYS_RAWIO -p 8086:8086 -es my_img:1.0.1

Lo que me estoy perdiendo aquí?

Actualizado:

El anteriormente trabajó en la ventana acoplable después he añadido a continuación en Dockerfile:

DE alpine:más reciente EJECUTAR el apk --no-cache --update --verbose agregar grep bash dmidecode &&
rm-rf /var/cache/apk/* /tmp/* /sbin/halt /sbin/poweroff /sbin/reboot

Y a continuación en la ventana acoplable componer archivo:

privilegiada: true

Pero Cuando trató de usar la anterior en kubernetes él no es capaz de recuperar demidecode de salida.

Una ayuda será muy apreciada.

devops docker go kubernetes
2021-11-23 17:03:05
1

Mejor respuesta

2

Lo que me estoy perdiendo aquí?

Para empezar ,el manejo de errores.

    x,_ := cmd.Output()

Nunca, nunca ignorar un error en Ir. A diferencia de lenguas como, por ejemplo, Pyhton, no hay ninguna excepción de sensibilización - error de manejo de los valores de retorno es su única oportunidad de averiguar si algo salió mal.

En segundo lugar, también estás haciendo caso omiso de sus comandos de la secuencia de Salida Estándar. Es probable que contenga un útil mensaje de error siempre que la ejecución del comando no funciona, así que os/exec's Output() proporciona como parte de el valor de error si no se ha capturado en el Cmd de configuración. Parte de su tratamiento de errores debe hacer un tipo de afirmación en la que el valor de error, si no nulo, y si es válida *exec.ExitErrory si ese tipo de afirmación se realiza correctamente, compruebe su Stderr campo para un mensaje de error.

Tercero, mirando a su comando, puedo ver que usted cometió un error fácil:

    cmd := exec.Command("dmidecode","-t 1")

En el shell, el espacio en blanco que separa a los argumentos. pero no hay ninguna shell aquí; ustedes están pasando -t 1 todos como un argumento para dmidecode. Usted debe estar pasando como separar argumentos, casi seguro:

    cmd := exec.Command("dmidecode","-t", "1")

Finalmente, usted ya ha encontrado no se Puede ejecutar dmidecode en la ventana acoplable contenedor , pero asegúrese de leer y entender el aceptado respuesta. A continuación, obtener su ventana acoplable contenedor configurado para ser capaz de ejecutar dmidecode sin Ir. Una vez que se trabaja en la línea de comandos, la misma ventana acoplable configuración debe permitir que funcione bajo la invocación así.

2021-11-23 17:22:34

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................