Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit591a9bf

Browse files
committed
do not set workspace folder if container id
1 parent56c7ceb commit591a9bf

File tree

3 files changed

+22
-16
lines changed

3 files changed

+22
-16
lines changed

‎agent/agentcontainers/api.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1120,7 +1120,7 @@ func (api *API) runSubAgentInContainer(ctx context.Context, dc codersdk.Workspac
11201120
logger.Info(ctx,"starting subagent in dev container")
11211121

11221122
err:=api.dccli.Exec(agentCtx,dc.WorkspaceFolder,dc.ConfigPath,agentPath, []string{"agent"},
1123-
WithContainerID(container.ID),
1123+
WithExecContainerID(container.ID),
11241124
WithRemoteEnv(
11251125
"CODER_AGENT_URL="+api.subAgentURL,
11261126
"CODER_AGENT_TOKEN="+agent.AuthToken.String(),

‎agent/agentcontainers/devcontainercli.go

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,10 @@ func WithUpOutput(stdout, stderr io.Writer) DevcontainerCLIUpOptions {
5252
typeDevcontainerCLIExecOptionsfunc(*devcontainerCLIExecConfig)
5353

5454
typedevcontainerCLIExecConfigstruct {
55-
args []string// Additional arguments for the Exec command.
56-
stdout io.Writer
57-
stderr io.Writer
55+
args []string// Additional arguments for the Exec command.
56+
containerIDstring
57+
stdout io.Writer
58+
stderr io.Writer
5859
}
5960

6061
// WithExecOutput sets additional stdout and stderr writers for logs
@@ -66,10 +67,12 @@ func WithExecOutput(stdout, stderr io.Writer) DevcontainerCLIExecOptions {
6667
}
6768
}
6869

69-
// WithContainerID sets the container ID to target a specific container.
70-
funcWithContainerID(idstring)DevcontainerCLIExecOptions {
70+
// WithExecContainerID sets the container ID to target a specific
71+
// container. Note that this option will unset the workspace folder to
72+
// ensure properties from the container are inherited correctly.
73+
funcWithExecContainerID(idstring)DevcontainerCLIExecOptions {
7174
returnfunc(o*devcontainerCLIExecConfig) {
72-
o.args=append(o.args,"--container-id",id)
75+
o.containerID=id
7376
}
7477
}
7578

@@ -165,7 +168,10 @@ func (d *devcontainerCLI) Exec(ctx context.Context, workspaceFolder, configPath
165168
logger:=d.logger.With(slog.F("workspace_folder",workspaceFolder),slog.F("config_path",configPath))
166169

167170
args:= []string{"exec"}
168-
ifworkspaceFolder!="" {
171+
switch {
172+
caseconf.containerID!="":
173+
args=append(args,"--container-id",conf.containerID)
174+
caseworkspaceFolder!="":
169175
args=append(args,"--workspace-folder",workspaceFolder)
170176
}
171177
ifconfigPath!="" {

‎agent/agentcontainers/devcontainercli_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -182,8 +182,8 @@ func TestDevcontainerCLI_ArgsAndParsing(t *testing.T) {
182182
configPath:"",
183183
cmd:"echo",
184184
cmdArgs: []string{"hello"},
185-
opts: []agentcontainers.DevcontainerCLIExecOptions{agentcontainers.WithContainerID("test-container-123")},
186-
wantArgs:"exec --workspace-folder /test/workspace --container-id test-container-123 echo hello",
185+
opts: []agentcontainers.DevcontainerCLIExecOptions{agentcontainers.WithExecContainerID("test-container-123")},
186+
wantArgs:"exec --container-id test-container-123 echo hello",
187187
wantError:false,
188188
},
189189
{
@@ -192,8 +192,8 @@ func TestDevcontainerCLI_ArgsAndParsing(t *testing.T) {
192192
configPath:"/test/config.json",
193193
cmd:"bash",
194194
cmdArgs: []string{"-c","ls -la"},
195-
opts: []agentcontainers.DevcontainerCLIExecOptions{agentcontainers.WithContainerID("my-container")},
196-
wantArgs:"exec --workspace-folder /test/workspace --config /test/config.json --container-id my-container bash -c ls -la",
195+
opts: []agentcontainers.DevcontainerCLIExecOptions{agentcontainers.WithExecContainerID("my-container")},
196+
wantArgs:"exec --container-id my-container --config /test/config.json bash -c ls -la",
197197
wantError:false,
198198
},
199199
{
@@ -203,9 +203,9 @@ func TestDevcontainerCLI_ArgsAndParsing(t *testing.T) {
203203
cmd:"cat",
204204
cmdArgs: []string{"/etc/hostname"},
205205
opts: []agentcontainers.DevcontainerCLIExecOptions{
206-
agentcontainers.WithContainerID("test-container-789"),
206+
agentcontainers.WithExecContainerID("test-container-789"),
207207
},
208-
wantArgs:"exec --workspace-folder /test/workspace --container-id test-container-789 cat /etc/hostname",
208+
wantArgs:"exec --container-id test-container-789 cat /etc/hostname",
209209
wantError:false,
210210
},
211211
}
@@ -293,7 +293,7 @@ func TestDevcontainerCLI_WithOutput(t *testing.T) {
293293
errBuf:=&bytes.Buffer{}
294294

295295
// Simulate CLI execution for exec command with container ID.
296-
wantArgs:="exec --workspace-folder /test/workspace --container-id test-container-456 echo hello"
296+
wantArgs:="exec --container-id test-container-456 echo hello"
297297
testExecer:=&testDevcontainerExecer{
298298
testExePath:testExePath,
299299
wantArgs:wantArgs,
@@ -306,7 +306,7 @@ func TestDevcontainerCLI_WithOutput(t *testing.T) {
306306
// Call Exec with WithExecOutput and WithContainerID to capture any command output.
307307
ctx:=testutil.Context(t,testutil.WaitMedium)
308308
err=dccli.Exec(ctx,"/test/workspace","","echo", []string{"hello"},
309-
agentcontainers.WithContainerID("test-container-456"),
309+
agentcontainers.WithExecContainerID("test-container-456"),
310310
agentcontainers.WithExecOutput(outBuf,errBuf),
311311
)
312312
require.NoError(t,err,"Exec should succeed")

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp