Skip to content

Remote-containers fails to build the container when using TARGETARCH substitution for stages #9605

@majabacza-coco

Description

@majabacza-coco
  • VSCode Version: 1.86.2 / devcontainers 0.347.0 pre-release / 0.338.1
  • Local OS Version: Ubuntu 20.04
  • Remote OS Version: N/A
  • Remote Extension/Connection Type: Containers

I recently switched to the current version of devcontainers, as there was some issue with recent vscode version, and now I can't rebuild our multiarch multistage containers. It's broken since at least 0.255.2, so I've been using 0.251.0 since, but this version no longer works with vscode 1.86. Below is a minimal reproducible example

  • Logs:
[2024-02-27T22:13:34.394Z] Start: Run: docker buildx version
[2024-02-27T22:13:34.451Z] Stop (57 ms): Run: docker buildx version
[2024-02-27T22:13:34.451Z] github.com/docker/buildx v0.12.1 30feaa1
[2024-02-27T22:13:34.451Z] 
[2024-02-27T22:13:34.451Z] Start: Resolving Remote
[2024-02-27T22:13:34.456Z] Start: Run: docker-compose version --short
[2024-02-27T22:13:34.989Z] Stop (533 ms): Run: docker-compose version --short
[2024-02-27T22:13:34.989Z] Docker Compose version: 1.29.2
[2024-02-27T22:13:34.989Z] Start: Run: docker ps -q -a --filter label=com.docker.compose.project=devcontainers-are-broken --filter label=com.docker.compose.service=workspace
[2024-02-27T22:13:35.004Z] Stop (15 ms): Run: docker ps -q -a --filter label=com.docker.compose.project=devcontainers-are-broken --filter label=com.docker.compose.service=workspace
[2024-02-27T22:13:35.005Z] Start: Run: docker-compose -f /home/wojtab/projects/devcontainers-are-broken/docker-compose.yml config
[2024-02-27T22:13:35.566Z] Stop (561 ms): Run: docker-compose -f /home/wojtab/projects/devcontainers-are-broken/docker-compose.yml config
[2024-02-27T22:13:35.566Z] services:
  workspace:
    build:
      context: /home/wojtab/projects/devcontainers-are-broken
      target: final_stage
    command: /bin/sh -c "while sleep 1000; do :; done"
    volumes:
    - /home/wojtab/projects/devcontainers-are-broken:/workspace:cached
version: '3.8'

[2024-02-27T22:13:35.569Z] Start: Run: docker -v
[2024-02-27T22:13:35.596Z] Stop (27 ms): Run: docker -v
[2024-02-27T22:13:35.596Z] Start: Run: docker events --format {{json .}} --filter event=start
[2024-02-27T22:13:35.603Z] PersistedPath=/home/wojtab/.config/Code/User/globalStorage/ms-vscode-remote.remote-containers/data, ContainerHasLabels=false
[2024-02-27T22:13:35.604Z] Start: Run: docker-compose -f /home/wojtab/projects/devcontainers-are-broken/docker-compose.yml config
[2024-02-27T22:13:36.220Z] Stop (616 ms): Run: docker-compose -f /home/wojtab/projects/devcontainers-are-broken/docker-compose.yml config
[2024-02-27T22:13:36.220Z] services:
  workspace:
    build:
      context: /home/wojtab/projects/devcontainers-are-broken
      target: final_stage
    command: /bin/sh -c "while sleep 1000; do :; done"
    volumes:
    - /home/wojtab/projects/devcontainers-are-broken:/workspace:cached
version: '3.8'

[2024-02-27T22:13:36.223Z] Start: Run: docker inspect --type image base_
[2024-02-27T22:13:36.242Z] Stop (19 ms): Run: docker inspect --type image base_
[2024-02-27T22:13:36.243Z] Path 'library/base_' for input 'docker.io/library/base_' failed validation.  Expected path to match regex '/^[a-z0-9]+([._-][a-z0-9]+)*(\/[a-z0-9]+([._-][a-z0-9]+)*)*$/'.
[2024-02-27T22:13:36.243Z] Error fetching image details: Could not parse image name 'base_'
[2024-02-27T22:13:36.243Z] Start: Run: docker pull base_
[2024-02-27T22:13:36.262Z] invalid reference format
[2024-02-27T22:13:36.265Z] Stop (22 ms): Run: docker pull base_
[2024-02-27T22:13:36.265Z] []
[2024-02-27T22:13:36.265Z] Error response from daemon: invalid reference format

[2024-02-27T22:13:36.268Z] Error: Command failed: docker inspect --type image base_
[2024-02-27T22:13:36.268Z]     at N$ (/home/wojtab/.vscode/extensions/ms-vscode-remote.remote-containers-0.338.1/dist/spec-node/devContainersSpecCLI.js:409:3566)
[2024-02-27T22:13:36.268Z]     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
[2024-02-27T22:13:36.268Z]     at async tAA (/home/wojtab/.vscode/extensions/ms-vscode-remote.remote-containers-0.338.1/dist/spec-node/devContainersSpecCLI.js:481:3833)
[2024-02-27T22:13:36.269Z]     at async CC (/home/wojtab/.vscode/extensions/ms-vscode-remote.remote-containers-0.338.1/dist/spec-node/devContainersSpecCLI.js:481:4775)
[2024-02-27T22:13:36.269Z]     at async NeA (/home/wojtab/.vscode/extensions/ms-vscode-remote.remote-containers-0.338.1/dist/spec-node/devContainersSpecCLI.js:614:11107)
[2024-02-27T22:13:36.269Z]     at async MeA (/home/wojtab/.vscode/extensions/ms-vscode-remote.remote-containers-0.338.1/dist/spec-node/devContainersSpecCLI.js:614:10848)
[2024-02-27T22:13:36.274Z] Stop (2193 ms): Run: /snap/code/152/usr/share/code/code /home/wojtab/.vscode/extensions/ms-vscode-remote.remote-containers-0.338.1/dist/spec-node/devContainersSpecCLI.js up --user-data-folder /home/wojtab/.config/Code/User/globalStorage/ms-vscode-remote.remote-containers/data --container-session-data-folder /tmp/devcontainers-869df83a-e37f-41cc-81b3-94e2b632a7411709072012659 --workspace-folder /home/wojtab/projects/devcontainers-are-broken --workspace-mount-consistency cached --id-label devcontainer.local_folder=/home/wojtab/projects/devcontainers-are-broken --id-label devcontainer.config_file=/home/wojtab/projects/devcontainers-are-broken/.devcontainer/devcontainer.json --log-level debug --log-format json --config /home/wojtab/projects/devcontainers-are-broken/.devcontainer/devcontainer.json --default-user-env-probe loginInteractiveShell --remove-existing-container --mount type=volume,source=vscode,target=/vscode,external=true --skip-post-create --update-remote-user-uid-default on --mount-workspace-git-root
[2024-02-27T22:13:36.275Z] Exit code 1
[2024-02-27T22:13:36.280Z] Command failed: /snap/code/152/usr/share/code/code /home/wojtab/.vscode/extensions/ms-vscode-remote.remote-containers-0.338.1/dist/spec-node/devContainersSpecCLI.js up --user-data-folder /home/wojtab/.config/Code/User/globalStorage/ms-vscode-remote.remote-containers/data --container-session-data-folder /tmp/devcontainers-869df83a-e37f-41cc-81b3-94e2b632a7411709072012659 --workspace-folder /home/wojtab/projects/devcontainers-are-broken --workspace-mount-consistency cached --id-label devcontainer.local_folder=/home/wojtab/projects/devcontainers-are-broken --id-label devcontainer.config_file=/home/wojtab/projects/devcontainers-are-broken/.devcontainer/devcontainer.json --log-level debug --log-format json --config /home/wojtab/projects/devcontainers-are-broken/.devcontainer/devcontainer.json --default-user-env-probe loginInteractiveShell --remove-existing-container --mount type=volume,source=vscode,target=/vscode,external=true --skip-post-create --update-remote-user-uid-default on --mount-workspace-git-root
[2024-02-27T22:13:36.280Z] Exit code 1

Steps to Reproduce:

  1. Create the following directory/file structure in an empty folder:
    ./Dockerfile
FROM ubuntu:22.04 as base_arm64
RUN touch arm64

FROM ubuntu:22.04 as base_amd64
RUN touch amd64

FROM base_${TARGETARCH} as actual_base
RUN touch base

FROM actual_base as final_stage
RUN touch final

./docker-compose.yml

version: '3.8'
services:
  workspace:
    build:
        context: .
        target: final_stage
    volumes:
      - .:/workspace:cached
    command: /bin/sh -c "while sleep 1000; do :; done"

./.devcontainer/devcontainer.json

{
	"name": "Existing Docker Compose (Extend)",
	"dockerComposeFile": [
		"../docker-compose.yml"
	],
	"service": "workspace",
	"workspaceFolder": "/workspace"
}
  1. Rebuild and reopen in container

Does this issue occur when you try this locally?: Yes
Does this issue occur when you try this locally and all extensions are disabled?: Yes

Metadata

Metadata

Assignees

Labels

bugIssue identified by VS Code Team member as probable bugcontainersIssue in vscode-remote containers

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions