anthropics / anthropics/devcontainer-features

Please publish a release: firewall removal merged a year ago (#21) but ghcr.io still serves v1.0.5 with the old behavior

Đang mở
#42 1 bình luận 4 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Shell
Star
303
Fork
60
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

PR #21 ("Remove firewall feature from claude-code") merged on **2025-06-13**, removing all firewall logic from the `claude-code` feature. A year later, the published artifact `ghcr.io/anthropics/devcontainer-features/claude-code:1.0` is still **v1.0.5** and still contains the pre-#21 behavior. Could you cut a release (e.g. v1.0.6 or v1.1.0) so the artifact matches `main`?

The stale artifact is the root cause of at least two open issues:

- #38 — `install.sh` in the published artifact (`setup_firewall_script()`, ~line 117) unconditionally copies its bundled script to `/usr/local/bin/init-firewall.sh`. Features build **after** the user's Dockerfile, so any user-provided script at that path is silently overwritten, and there is no feature option to disable this (`"options": {}`).
- #30 — the bundled `init-firewall.sh` is an outdated copy that breaks DNS in docker-compose setups.

One more failure mode we hit (not yet covered by those issues): the bundled script hard-fails the whole container setup (`exit 1`) when **any** domain in its allowlist fails to resolve — including `statsig.anthropic.com` and `statsig.com`. Enterprise networks commonly block telemetry domains at DNS level, even though Claude Code works fine there with `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1`. Combined with the silent overwrite, the sequence is nasty to debug: a user writes their own firewall script that tolerates blocked telemetry domains, the feature silently replaces it, and `postCreateCommand` then aborts on a domain the user never asked to allowlist.

The divergence makes this hard to troubleshoot from source: `src/claude-code/install.sh` on `main` contains no firewall logic at all, yet `devcontainer-feature.json` on `main` also says `1.0.5` — the same version string as the published artifact that *does* contain it. Inspecting the repo tells you the bug shouldn't exist.

Verified today (2026-06-12) by pulling the OCI layer for `claude-code:1.0` from ghcr.io: manifest reports v1.0.5, `install.sh` contains `setup_firewall_script()`, bundled `init-firewall.sh` is the 119-line version.

## Asks

1. **Publish a release** from current `main` so the artifact no longer installs/overwrites `/usr/local/bin/init-firewall.sh` (this alone resolves #38 and #30).
2. Bump the version in `devcontainer-feature.json` as part of that release, so the source and published artifact can't share a version string while differing in behavior.
3. If a firewall script ever returns to this feature: namespace it (e.g. `claude-init-firewall.sh`), never overwrite an existing file, gate it behind a feature option, and make it warn-and-continue on unresolvable domains rather than aborting container setup.

Happy to send a PR for the version bump if that helps.

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

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

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.