es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo acceder a la shell del contenedor Docker de Dart?

Estoy intentando acceder a la terminal de mi contenedor Docker de Dart en Dart Docker con el siguiente comando:

$ docker-compose exec dartserver sh

Pero estoy obteniendo el siguiente mensaje de error:

OCI runtime exec failed: exec failed: container_linux.go:380: starting container process caused: exec: "sh": executable file not found in $PATH: unknown

¿Alguna idea?

Dockerfile

FROM dart:stable AS build

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error sugiere que el comando “sh” no está disponible en el contenedor. Esto se debe a que la imagen base que se está utilizando es “scratch”, que es una imagen vacía sin herramientas ni utilidades preinstaladas.

    Para acceder a la terminal de tu contenedor Docker Dart, deberás modificar tu Dockerfile para instalar los paquetes necesarios. Puedes agregar las siguientes líneas para instalar el terminal:

    FROM dart:stable AS build
    RUN apt-get update && apt-get install -y bash
    #...
    

    Esto instalará el terminal bash en tu contenedor, al cual podrás acceder utilizando el siguiente comando:

    $ docker-compose exec dartserver bash

    Ten en cuenta que también debes actualizar el comando en el Dockerfile para iniciar el servidor con bash en lugar de sh:

    CMD ["/bin/bash", "-c", "/app/bin/server"]
    

    Una vez que hayas reconstruido y vuelto a levantar el contenedor, podrás acceder al terminal utilizando el comando anterior sin problemas.

Comments are closed.