Uso la ventana acoplable para ejecutar un script bash y necesito capturar su salida y solo su salida.
docker run --rm --volume=/tmp/test.sh:/tmp/test.sh:ro --entrypoint=/bin/bash node:4.6.0 -xe /tmp/test.sh
El problema es que también obtengo el resultado de Docker descargando la imagen. piensa como:
Unable to find image 'node:4.6.0' locally 4.6.0: Pulling from library/node 6a5a5368e0c2: Pulling fs layer 7b9457ec39de: Pulling fs layer ff18e19c2db4: Pulling fs layer 6a3d69edbe90: Pulling fs layer 0ce4b037e17f: Pulling fs layer¿Hay alguna manera de capturar solo la salida generada por el script bash ejecutado por la ventana acoplable sin mensajes/errores/advertencias adicionales que la ventana acoplable pueda generar?
La salida de la ventana acoplable se envía a stderr para que pueda diferenciarse de la salida normal del script.
Si necesita tanto stderr como stdout del contenedor, use la salida de docker logs , que es la opción más segura pero un poco más compleja de configurar. Los registros de notas solo funcionan localmente con los controladores de registro json-file y journald .
CID=$(docker run -d --volume=/tmp/test.sh:/tmp/test.sh:ro \ --entrypoint=/bin/bash node:4.6.0 -xe /tmp/test.sh) docker wait $CID docker logs $CID docker rm $CIDSi solo está interesado en la salida estándar de su proceso, redirija la salida estándar a un archivo. Cualquier salida de error, junto con las ventanas acoplables, pasará a la pantalla. El archivo solo contendrá datos de salida estándar.
docker run --rm --volume=/tmp/test.sh:/tmp/test.sh:ro \ --entrypoint=/bin/bash node:4.6.0 -xe /tmp/test.sh > outputTambién puede redirigir stderr a stdout dentro del contenedor para que solo pierda la salida de docker stderr.
docker run -rm --volume=/tmp/test.sh:/tmp/test.sh:ro \ --entrypoint=/bin/bash node:4.6.0 -xec '/tmp/test.sh 2>&1' > output