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.

GitHub Codespaces: ¿cómo configurar la plataforma x86_64, AMD64, ARM64?

Primero, la pregunta: ¿existe alguna forma de elegir la plataforma (por ejemplo, x86_64, AMD64, ARM64) para un GitHub Codespace?

Esto es lo que he descubierto hasta ahora:

Intento 1 (no funciona):

Desde dentro de GitHub.com, puedes elegir la “máquina” para un Codespace, pero las únicas opciones son el tamaño de RAM y disco.

Intento 2 (EDIT: no funciona): devcontainer.json

Cuando creas un Codespace, puedes especificar opciones creando una carpeta .devcontainer en la raíz con dos archivos: devcontainer.json y Dockerfile.

Aquí puedes personalizar runtimes, paquetes instalados, etc., pero la documentación no menciona nada sobre determinar la arquitectura…

…sin embargo, la documentación de VSCode para devcontainer.json tiene una opción runArgs, que “acepta argumentos de Docker CLI”…

y la documentación de Docker CLI sobre –platform indica que deberías poder pasar --platform linux/amd64 o --platform linux/arm64, pero…

Cuando intenté esto, el Codespace simplemente se quedaba colgado, sin terminar de construir.

Intento 3 (en progreso): especificar en Dockerfile

Esta opción parece la más prometedora, pero es todo nuevo para mí (contenedorización, codespaces, docker). Es posible que los Intentos 2 y 3 funcionen en conjunto. Sin embargo, en este momento, hay demasiadas piezas nuevas y necesito ayuda externa.

¿GitHub Codespaces soporta esto?

¿Lo pasarías en el Dockerfile o en el devcontainer.json? ¿Cómo?

¿Cómo verificarías esto, de todos modos? [Resuelto: dpkg --print-architecture o uname -a]

Para Windows, presumiblemente necesitarías una licencia (no encontré nada en GitHub sobre codespaces prelicenciados), pero eso puede estar fuera del alcance de la pregunta.

Referencias:
https://code.visualstudio.com/docs/remote/devcontainerjson-reference
https://docs.docker.com/engine/reference/commandline/run/
https://docs.docker.com/engine/reference/builder/
https://docs.docker.com/desktop/multi-arch/
https://docs.docker.com/buildx/working-with-buildx/

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    ¿Existe alguna forma de elegir la plataforma (por ejemplo, x86_64, AMD64, ARM64) para un GitHub Codespace?

    Después de investigar y probar varios métodos, la respuesta aún no está clara. Aquí está lo que se ha encontrado hasta ahora:

    Intento 1 (no funciona):

    Desde dentro de GitHub.com, puedes elegir la “máquina” para un Codespace, pero las únicas opciones son la cantidad de RAM y el tamaño del disco.

    Intento 2 (EDIT: no funciona): devcontainer.json

    Cuando creas un Codespace, puedes especificar opciones creando una carpeta .devcontainer en el nivel superior con dos archivos: devcontainer.json y Dockerfile. Aquí puedes personalizar tiempos de ejecución, paquetes instalados, etc., pero los documentos no dicen nada sobre la determinación de la arquitectura. Sin embargo, los documentos de VSCode para devcontainer.json tienen una opción runArgs, que “acepta argumentos de la CLI de Docker”. Según los documentos de la CLI de Docker sobre --platform, deberías poder pasar --platform linux/amd64 o --platform linux/arm64. Al intentarlo, el Codespace simplemente se congela y nunca termina de construirse.

    Intento 3 (en progreso): especificar en Dockerfile

    Esta ruta parece ser la más prometedora, pero es nueva y requiere más exploración. Es posible que los Intentos 2 y 3 funcionen juntos.

    Para responder a las preguntas presentadas:

    1. Actualmente no está claro si GitHub Codespaces admiten especificar la plataforma.
    2. El Intento 2 sugiere pasar la plataforma a través de devcontainer.json usando runArgs, pero este método no funcionó. El Intento 3 sugiere especificar en Dockerfile, pero se desconocen los detalles de cómo hacerlo.
    3. Suponiendo que se pueda especificar la plataforma, se puede usar dpkg --print-architecture o uname -a para verificar qué plataforma se está utilizando.
    4. La licencia de Windows está fuera del alcance de esta pregunta.

    Referencias:
    https://code.visualstudio.com/docs/remote/devcontainerjson-reference
    https://docs.docker.com/engine/reference/commandline/run/
    https://docs.docker.com/engine/reference/builder/
    https://docs.docker.com/desktop/multi-arch/
    https://docs.docker.com/buildx/working-with-buildx/

Comments are closed.