fix(compose): add project directory option to compose command [EE-7093] (#11870)

pull/11885/head
Oscar Zhou 2024-05-30 08:47:07 +12:00 committed by GitHub
parent 9e0e0a12fa
commit 0c870bf37b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 13 additions and 0 deletions

View File

@ -126,6 +126,10 @@ func (wrapper *PluginWrapper) command(command composeCommand, options libstack.O
command.WithHost(options.Host)
}
if options.ProjectDir != "" {
command.WithProjectDirectory(options.ProjectDir)
}
var stderr bytes.Buffer
args := []string{}
@ -237,6 +241,10 @@ func (command *composeCommand) WithEnvFilePath(envFilePath string) {
command.globalArgs = append(command.globalArgs, "--env-file", envFilePath)
}
func (command *composeCommand) WithProjectDirectory(projectDir string) {
command.globalArgs = append(command.globalArgs, "--project-directory", projectDir)
}
func (command *composeCommand) ToArgs() []string {
return append(command.globalArgs, command.subCommandAndArgs...)
}

View File

@ -35,6 +35,7 @@ type WaitResult struct {
}
type Options struct {
// WorkingDir is the working directory for the command execution
WorkingDir string
Host string
ProjectName string
@ -42,6 +43,10 @@ type Options struct {
EnvFilePath string
// Env is a list of environment variables to pass to the command, example: "FOO=bar"
Env []string
// ProjectDir is the working directory for containers created by docker compose file.
// By default, it is an empty string, which means it corresponds to the path of the compose file itself.
// This is particularly helpful when mounting a relative path.
ProjectDir string
}
type DeployOptions struct {