@@ -61,6 +61,14 @@ const (
61
61
// MagicSessionTypeEnvironmentVariable is used to track the purpose behind an SSH connection.
62
62
// This is stripped from any commands being executed, and is counted towards connection stats.
63
63
MagicSessionTypeEnvironmentVariable = "CODER_SSH_SESSION_TYPE"
64
+ // ContainerEnvironmentVariable is used to specify the target container for an SSH connection.
65
+ // This is stripped from any commands being executed.
66
+ // Only available if CODER_AGENT_DEVCONTAINERS_ENABLE=true.
67
+ ContainerEnvironmentVariable = "CODER_CONTAINER"
68
+ // ContainerUserEnvironmentVariable is used to specify the container user for
69
+ // an SSH connection.
70
+ // Only available if CODER_AGENT_DEVCONTAINERS_ENABLE=true.
71
+ ContainerUserEnvironmentVariable = "CODER_CONTAINER_USER"
64
72
)
65
73
66
74
// MagicSessionType enums.
@@ -330,17 +338,17 @@ func (s *sessionCloseTracker) Close() error {
330
338
331
339
func extractContainerInfo (env []string ) (container , containerUser string , filteredEnv []string ) {
332
340
for _ , kv := range env {
333
- if strings .HasPrefix (kv , "CODER_CONTAINER =" ) {
334
- container = strings .TrimPrefix (kv , "CODER_CONTAINER =" )
341
+ if strings .HasPrefix (kv , ContainerEnvironmentVariable + " =" ) {
342
+ container = strings .TrimPrefix (kv , ContainerEnvironmentVariable + " =" )
335
343
}
336
344
337
- if strings .HasPrefix (kv , "CODER_CONTAINER_USER =" ) {
338
- containerUser = strings .TrimPrefix (kv , "CODER_CONTAINER_USER =" )
345
+ if strings .HasPrefix (kv , ContainerUserEnvironmentVariable + " =" ) {
346
+ containerUser = strings .TrimPrefix (kv , ContainerUserEnvironmentVariable + " =" )
339
347
}
340
348
}
341
349
342
350
return container , containerUser , slices .DeleteFunc (env , func (kv string ) bool {
343
- return strings .HasPrefix (kv , "CODER_CONTAINER =" ) || strings .HasPrefix (kv , "CODER_CONTAINER_USER =" )
351
+ return strings .HasPrefix (kv , ContainerEnvironmentVariable + " =" ) || strings .HasPrefix (kv , ContainerUserEnvironmentVariable + " =" )
344
352
})
345
353
}
346
354
@@ -536,7 +544,6 @@ func (s *Server) sessionStart(logger slog.Logger, session ssh.Session, env []str
536
544
ptyLabel = "yes"
537
545
}
538
546
539
- // plumb in envinfoer here to modify command for container exec?
540
547
var ei usershell.EnvInfoer
541
548
var err error
542
549
if s .config .ExperimentalContainersEnabled && container != "" {
0 commit comments