Read DOCKER_AGENT_ENV_-prefixed secret variables before the plain names
Les mainteneurs répondent en général sous 1 jour
Évaluation
Cette issue n'a pas encore été évaluée.
Description
Overview
Let docker-agent read DOCKER_AGENT_ENV_<NAME> in preference to <NAME> for every secret it resolves (e.g. DOCKER_AGENT_ENV_ANTHROPIC_API_KEY before ANTHROPIC_API_KEY).
Motivation
docker-agent resolves op:// 1Password references, which is a nice way to avoid plain-text keys. But the variable names are shared with other tools: exporting ANTHROPIC_API_KEY="op://…" in the shell breaks Claude Code, Codex and provider SDKs, which do not resolve op://. Today the workarounds are the docker-agent env file (~/.config/cagent/.env) or a per-model token_key, which must be repeated in every model of every config and does not apply to --model provider/model.
Use cases
export DOCKER_AGENT_ENV_ANTHROPIC_API_KEY="op://Personal/Anthropic/api-key"
export ANTHROPIC_API_KEY=sk-ant-... # or unset; used by other tools
docker agent run agent.yaml # uses the op:// reference
Also lets a user point docker-agent at a different key (separate billing/project) without touching other tools.
Proposed solution
A PrefixedProvider decorator in pkg/environment, wired through a single chain constructor as OnePassword(Prefixed(Multi(sources...))), so a prefixed value can itself be an op:// reference.
Decisions (revised after code review, see the comment below):
- Prefix
DOCKER_AGENT_ENV_.DOCKER_AGENT_is docker-agent's settings namespace; names already in it are never looked up as overrides. - Precedence:
DOCKER_AGENT_ENV_<NAME>wins across the whole chain,--env-from-fileincluded. - Empty values: an empty override is ignored and
<NAME>is used.
Doctor and follow-ups:
docker agent doctor(findSource) queries sources directly and would report the key as missing; teach it the prefix and show which name supplied the value.- The TUI transcriber reads
OPENAI_API_KEYwithos.Getenv(bypassing bothop://and the prefix); fixing it needs lazy resolution, so it is deferred to a separate PR.
Known limitation: in --sandbox, keys Docker Desktop proxies itself (OPENAI_API_KEY, ANTHROPIC_API_KEY, …) never go through our chain, so neither op:// nor the prefix applies to them there. Documented, not changed.
Alternatives
- Per-model
token_key: works, but verbose and not available for--modelshorthand. - Docker Agent env file: works, but a plain shell export of the same name still wins, which is the common setup for users of several AI tools.
Related issues
- #4701: docs fix for the credential helper scope and an
op://isolation tip. - #4703: credential helper for all secrets.
- #4708: implementation.
- Langage dominant
- Go
- Étoiles
- 4.6k
- Forks
- 522
- Merge moyen
- 11 h 42 min
- PR mergées (30 j)
- 208
Préparer son environnement
Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.
- Fournit un Dockerfile ou un fichier Docker Compose
- Aucun modèle de pull request
- Aucun guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de docker/docker-agent
-
Error when trying to run sandbox example?Peut-être pris @dgageot l’a pris il y a 3 jours. Ouvertearea/cli
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
docker/docker-agent#4672 · 1 commentaire · 1 réaction · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
pkg/hooks tests fail with a misleading assertion when jq is not installedPeut-être pris @dwin-gharibi l’a pris il y a 61 jours. Ouvertearea/testing
Difficulté 2/5 1-3 heures Accessibilité débutants 86/100
docker/docker-agent#4052 ·
Les mainteneurs répondent en général sous 1 jour
-
`remove_directory` and `create_directory` hide work they already did when a later path failsPeut-être pris @dwin-gharibi l’a pris il y a 79 jours. Ouvertearea/tools
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
docker/docker-agent#3933 ·
Les mainteneurs répondent en général sous 1 jour
-
`edit_file` silently edits the first match when `oldText` occurs more than oncePeut-être pris @dwin-gharibi l’a pris il y a 79 jours. Ouvertearea/tools
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
docker/docker-agent#3929 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
area/config area/mcp area/providers area/security kind/feat status/needs-design
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
docker/docker-agent#4703 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de docker/docker-agent
Issues similaires
-
Project submission:Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 72/100
slavakurilyak/awesome-ai-agents#845 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 3 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
JakeChampion/lang#13132 ·
Les mainteneurs répondent en général sous 1 jour
-
[BUG] deploy.restart_policy without condition drops the restart policyPeut-être pris @akshat-lakhera l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
docker/compose#14383 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour