Tengo un Dockerfile de varias etapas. Quiero configurar VS Code Remote para compilar la etapa de desarrollo del Dockerfile en lugar de la última etapa del Dockerfile.
Estoy bastante seguro de que esta configuración iría en el archivo .devcontainer.json. Leí la referencia de .devcontainer.json: https://code.visualstudio.com/docs/remote/containers#_devcontainerjson-reference y probé runArgs , pero estos son los argumentos de tiempo de ejecución, no los de compilación.
Intenté esto:
{ "dockerFile": "Dockerfile", "extensions": ["ms-python.python"], "runArgs": [ "--target", "dev" ] }y:
{ "dockerFile": "Dockerfile", "extensions": ["ms-python.python"], "buildArgs": [ "--target", "dev" ] } Cuando usé runArgs , obtuve Failed: Starting the development container porque target no es una opción de docker run . Cuando probé buildArgs , aparentemente se ignoró el argumento, lo cual tiene sentido ya que no figura en la documentación.
runArgs especifica los argumentos que se usarán con el comando "docker run". En este caso, necesitamos pasar argumentos al comando "docker build".
Para especificar argumentos de compilación, debe usar la propiedad "construir". En su ejemplo, necesitaría que su archivo devcontainer.json contuviera:
"build": { "target": "dev" },Puede usar el modo Dev Container: Existing Docker Compose. El servicio docker-compose puede especificar la etapa Dockerfile.
Encontré una solución.
Puedo construir manualmente el Dockerfile yo mismo:
docker build --target dev -t vizd . y luego use el parámetro de image en .devcontainer.json :
{ "image": "vizd", "extensions": ["ms-python.python"] }No perfecto, pero factible.