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/
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
yDockerfile
. 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 paradevcontainer.json
tienen una opciónrunArgs
, 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:
devcontainer.json
usandorunArgs
, pero este método no funcionó. El Intento 3 sugiere especificar en Dockerfile, pero se desconocen los detalles de cómo hacerlo.dpkg --print-architecture
ouname -a
para verificar qué plataforma se está utilizando.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/