in internal/components/setup/compose.go [213:235]
func exposeComposeLog(cli *client.Client, service *ComposeService, containerID string, logFollower *util.ResourceLogFollower) error {
logs, err := cli.ContainerLogs(logFollower.Ctx, containerID, types.ContainerLogsOptions{
ShowStdout: true,
ShowStderr: true,
Follow: true,
Details: false,
})
if err != nil {
return err
}
writer, err := logFollower.BuildLogWriter(fmt.Sprintf("%s/std.log", service.Name))
if err != nil {
return err
}
go func() {
defer writer.Close()
if _, err := stdcopy.StdCopy(writer, writer, logs); err != nil && !errors.Is(err, context.Canceled) {
logger.Log.Warnf("write %s std log error: %v", service.Name, err)
}
}()
return nil
}