devcontainers / devcontainers/features

Nix feature does not support complex package expressions

Đang mở
#375 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
enhancement
Ngôn ngữ chính
Shell
Star
1.5k
Fork
622
Merge trung bình
6 ngày 53 phút
Pull request đã merge (30 ngày)
9

Mô tả

GIven
```json
"ghcr.io/devcontainers/features/nix:1": {
"multiUser": "false",
"packages": "pdm, kompose, (google-cloud-sdk.withExtraComponents [google-cloud-sdk.components.gke-gcloud-auth-plugin])"
```

Building the Dev Container image will fail with the following error:

```
#0 65.22 copying Nix to /nix/store...
#0 65.84 installing 'nix-2.12.0'
#0 65.86 building '/nix/store/0dg0zjj2j6hijn193x1215yssrg7n1xs-user-environment.drv'...
#0 106.5 unpacking channels...
#0 116.3
#0 116.3 Installation finished! To ensure that the necessary environment
#0 116.3 variables are set, please add the line
#0 116.3
#0 116.3 . /home/vscode/.nix-profile/etc/profile.d/nix.sh
#0 116.3
#0 116.3 to your shell profile (e.g. ~/.profile).
#0 116.4 (*) Executing post-installation steps...
#0 116.4 Installing packages "pdm kompose (google-cloud-sdk.withExtraComponents [google-cloud-sdk.components.gke-gcloud-auth-plugin])" in profile...
#0 131.1 error: Parenthesis is not closed.
#0 131.2 ERROR: Feature "Nix Package Manager" (ghcr.io/devcontainers/features/nix) failed to install! Look at the documentation at https://github.com/devcontainers/features/tree/main/src/nix for help troubleshooting this error.
------
[2023-01-04T15:57:49.359Z] ERROR: failed to solve: executor failed running [/bin/sh -c cd /tmp/build-features/nix_2 && chmod +x ./devcontainer-features-install.sh && ./devcontainer-features-install.sh]: exit code: 1
[2023-01-04T15:57:49.365Z] Stop (267178 ms): Run: docker buildx build --load --build-arg BUILDKIT_INLINE_CACHE=1 -f /tmp/devcontainercli-taohansen/container-features/0.25.2-1672847593217/Dockerfile-with-features -t vsc-flask-cockroachdb-devcontainer-fddaab1caaa8f542301775876a0f87bd --target dev_containers_target_stage --build-context dev_containers_feature_content_source=/tmp/devcontainercli-taohansen/container-features/0.25.2-1672847593217 --build-arg _DEV_CONTAINERS_BASE_IMAGE=dev_container_auto_added_stage_label --build-arg _DEV_CONTAINERS_IMAGE_USER=root --build-arg _DEV_CONTAINERS_FEATURE_CONTENT_SOURCE=dev_container_feature_content_temp /home/taohansen/flask-cockroachdb-devcontainer
[2023-01-04T15:57:49.367Z] Error: Command failed: docker buildx build --load --build-arg BUILDKIT_INLINE_CACHE=1 -f /tmp/devcontainercli-taohansen/container-features/0.25.2-1672847593217/Dockerfile-with-features -t vsc-flask-cockroachdb-devcontainer-fddaab1caaa8f542301775876a0f87bd --target dev_containers_target_stage --build-context dev_containers_feature_content_source=/tmp/devcontainercli-taohansen/container-features/0.25.2-1672847593217 --build-arg _DEV_CONTAINERS_BASE_IMAGE=dev_container_auto_added_stage_label --build-arg _DEV_CONTAINERS_IMAGE_USER=root --build-arg _DEV_CONTAINERS_FEATURE_CONTENT_SOURCE=dev_container_feature_content_temp /home/taohansen/flask-cockroachdb-devcontainer
[2023-01-04T15:57:49.367Z] at Doe (/home/taohansen/.vscode-remote-containers/dist/dev-containers-cli-0.266.1/dist/spec-node/devContainersSpecCLI.js:1894:1669)
[2023-01-04T15:57:49.367Z] at runMicrotasks ()
[2023-01-04T15:57:49.368Z] at processTicksAndRejections (node:internal/process/task_queues:96:5)
[2023-01-04T15:57:49.368Z] at async EF (/home/taohansen/.vscode-remote-containers/dist/dev-containers-cli-0.266.1/dist/spec-node/devContainersSpecCLI.js:1893:1978)
[2023-01-04T15:57:49.368Z] at async uT (/home/taohansen/.vscode-remote-containers/dist/dev-containers-cli-0.266.1/dist/spec-node/devContainersSpecCLI.js:1893:901)
[2023-01-04T15:57:49.368Z] at async Poe (/home/taohansen/.vscode-remote-containers/dist/dev-containers-cli-0.266.1/dist/spec-node/devContainersSpecCLI.js:1899:2128)
[2023-01-04T15:57:49.369Z] at async Zf (/home/taohansen/.vscode-remote-containers/dist/dev-containers-cli-0.266.1/dist/spec-node/devContainersSpecCLI.js:1899:3278)
[2023-01-04T15:57:49.369Z] at async aue (/home/taohansen/.vscode-remote-containers/dist/dev-containers-cli-0.266.1/dist/spec-node/devContainersSpecCLI.js:2020:15276)
[2023-01-04T15:57:49.369Z] at async oue (/home/taohansen/.vscode-remote-containers/dist/dev-containers-cli-0.266.1/dist/spec-node/devContainersSpecCLI.js:2020:15030)
[2023-01-04T15:57:49.372Z] Stop (277278 ms): Run in Host: /home/taohansen/.vscode-remote-containers/bin/e8a3071ea4344d9d48ef8a4df2c097372b0c5161/node /home/taohansen/.vscode-remote-containers/dist/dev-containers-cli-0.266.1/dist/spec-node/devContainersSpecCLI.js up --workspace-folder /home/taohansen/flask-cockroachdb-devcontainer --workspace-mount-consistency cached --id-label devcontainer.local_folder=\\wsl.localhost\Ubuntu\home\taohansen\flask-cockroachdb-devcontainer --log-level debug --log-format json --config /home/taohansen/flask-cockroachdb-devcontainer/.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 true
[2023-01-04T15:57:49.373Z] Exit code 1
[2023-01-04T15:57:49.382Z] Command failed: /home/taohansen/.vscode-remote-containers/bin/e8a3071ea4344d9d48ef8a4df2c097372b0c5161/node /home/taohansen/.vscode-remote-containers/dist/dev-containers-cli-0.266.1/dist/spec-node/devContainersSpecCLI.js up --workspace-folder /home/taohansen/flask-cockroachdb-devcontainer --workspace-mount-consistency cached --id-label devcontainer.local_folder=\\wsl.localhost\Ubuntu\home\taohansen\flask-cockroachdb-devcontainer --log-level debug --log-format json --config /home/taohansen/flask-cockroachdb-devcontainer/.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 true
[2023-01-04T15:57:49.382Z] Exit code 1
[2023-01-04T15:57:53.878Z] Start: Run: wsl -d Ubuntu -e wslpath -u \\wsl.localhost\Ubuntu\home\taohansen\flask-cockroachdb-devcontainer
[2023-01-04T15:57:54.160Z] Stop (282 ms): Run: wsl -d Ubuntu -e wslpath -u \\wsl.localhost\Ubuntu\home\taohansen\flask-cockroachdb-devcontainer
```

Of course, the package expression here is enclosed so this appears to be a bug in how the Nix feature handles any package declaration more complex than simple package names.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Bắt đầu với tài liệu về feature Nix tại https://github.com/devcontainers/features/tree/main/src/nix và tái hiện lỗi bằng biểu thức packages được hiển thị trong issue. Truy vết lệnh devcontainer-features-install.sh được tạo để cài đặt các package, sau đó xác minh rằng cùng biểu thức phức tạp đó hoàn tất thành công trong quá trình Docker build.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
docker, shell
Lĩnh vực
devops, tooling
Loại issue
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
38/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.