"EOF en sustitución de comillas inversas" al intentar ejecutar un archivo binario

"EOF en sustitución de comillas inversas" al intentar ejecutar un archivo binario

Recibo el siguiente error al intentar ejecutar un archivo binario con el comando:tmp/123.bin

tmp/123.bin: 1: tmp/123.bin: Syntax error: EOF in backquote substitution

No tengo idea de qué podría estar causando el error, ya que se trata de un mensaje de error relacionado con el script y estoy intentando ejecutar un archivo binario.

El archivo se crea con el siguiente código (nodejs).

await runCommand(`nasm -f elf32 ./tmp/${id}.asm -o ./tmp/${id}.o`);
await runCommand(`ld -m elf_i386 ./tmp/${id}.o -o ./tmp/${id}.bin`);
await runCommand(`chmod +x tmp/${id}.bin`);

No tengo problemas para ejecutar el archivo en mi máquina de desarrollo (wsl, Ubuntu 20.04 LTS). Sin embargo, cuando intento hacer lo mismo en Google Cloud Run, el comando falla.

¡Cualquier ayuda es muy apreciada! :)

Editar: aquí hay información que logré descubrir.

ls -l ./tmp/123.bin-rwxrwxr-x 1 root root 956 Oct 30 18:24 ./tmp/123.bin

file ./tmp/123.bin./tmp/123.bin: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, not stripped

uname -aLinux localhost 4.4.0 #1 SMP Sun Jan 10 15:06:54 PST 2016 x86_64 GNU/Linux

Respuesta1

Resulta que solo puedes ejecutar ejecutables de 64 bits en Cloud Run

Los ejecutables en la imagen del contenedor deben compilarse para Linux de 64 bits.

Sin embargo puedes usarqemu!

Después de agregarlo apt install -y qemu-usera su Dockerfile, puede ejecutar un binario de 32 bits con el comandoqemu-i386 ./file

información relacionada