diff --git a/cmd/scw/testdata/test-all-usage-container-container-logs-usage.golden b/cmd/scw/testdata/test-all-usage-container-container-logs-usage.golden new file mode 100644 index 0000000000..14d24e72df --- /dev/null +++ b/cmd/scw/testdata/test-all-usage-container-container-logs-usage.golden @@ -0,0 +1,20 @@ +🎲🎲🎲 EXIT CODE: 0 🎲🎲🎲 +🟩🟩🟩 STDOUT️ 🟩🟩🟩️ +Display the logs of a container from the last 2 hours + +USAGE: + scw container container logs [arg=value ...] + +ARGS: + container-id ID of the container which logs are to be displayed + [region=fr-par] Region to target. If none is passed will use default region from the config (fr-par | nl-ams | pl-waw) + +FLAGS: + -h, --help help for logs + --list-sub-commands List all subcommands + +GLOBAL FLAGS: + -c, --config string The path to the config file + -D, --debug Enable debug mode + -o, --output string Output format: json or human, see 'scw help output' for more info (default "human") + -p, --profile string The config profile to use diff --git a/cmd/scw/testdata/test-all-usage-container-container-usage.golden b/cmd/scw/testdata/test-all-usage-container-container-usage.golden index 388a27acbf..e6f0aa881d 100644 --- a/cmd/scw/testdata/test-all-usage-container-container-usage.golden +++ b/cmd/scw/testdata/test-all-usage-container-container-usage.golden @@ -13,6 +13,9 @@ AVAILABLE COMMANDS: redeploy Redeploy a container update Update the container associated with the specified ID. +UTILITY COMMANDS: + logs Show container logs + FLAGS: -h, --help help for container --list-sub-commands List all subcommands diff --git a/docs/commands/container.md b/docs/commands/container.md index aadfae65bc..8fdb14e9a9 100644 --- a/docs/commands/container.md +++ b/docs/commands/container.md @@ -7,6 +7,7 @@ This API allows you to manage your Serverless Containers. - [Delete the container associated with the specified ID.](#delete-the-container-associated-with-the-specified-id.) - [Get the container associated with the specified ID.](#get-the-container-associated-with-the-specified-id.) - [List all containers the caller can access (read permission).](#list-all-containers-the-caller-can-access-(read-permission).) + - [Show container logs](#show-container-logs) - [Redeploy a container](#redeploy-a-container) - [Update the container associated with the specified ID.](#update-the-container-associated-with-the-specified-id.) - [Deploy a container](#deploy-a-container) @@ -159,6 +160,26 @@ scw container container list [arg=value ...] +### Show container logs + +Display the logs of a container from the last 2 hours + +**Usage:** + +``` +scw container container logs [arg=value ...] +``` + + +**Args:** + +| Name | | Description | +|------|---|-------------| +| container-id | | ID of the container which logs are to be displayed | +| region | Default: `fr-par`
One of: `fr-par`, `nl-ams`, `pl-waw` | Region to target. If none is passed will use default region from the config | + + + ### Redeploy a container Performs a rollout of the container by creating new instances with the latest image version and terminating the old instances. diff --git a/internal/namespaces/container/v1/custom.go b/internal/namespaces/container/v1/custom.go index 59704e2604..ffe2ef8ad2 100644 --- a/internal/namespaces/container/v1/custom.go +++ b/internal/namespaces/container/v1/custom.go @@ -35,6 +35,13 @@ func GetCommands() *core.Commands { cmds.MustFind("container", "namespace", "update").Override(containerNamespaceUpdateBuilder) cmds.MustFind("container", "namespace", "delete").Override(containerNamespaceDeleteBuilder) + // Logs and Metrics + cmds.Merge(core.NewCommands( + containerLogs(), + // containerMetrics(), // TODO: coming soon + )) + + // Deploy if cmdDeploy := containerDeployCommand(); cmdDeploy != nil { cmds.Add(cmdDeploy) } diff --git a/internal/namespaces/container/v1/custom_container_test.go b/internal/namespaces/container/v1/custom_container_test.go index 46e348aa66..5f9637adb0 100644 --- a/internal/namespaces/container/v1/custom_container_test.go +++ b/internal/namespaces/container/v1/custom_container_test.go @@ -5,7 +5,7 @@ import ( "testing" "github.com/scaleway/scaleway-cli/v2/core" - container "github.com/scaleway/scaleway-cli/v2/internal/namespaces/container/v1" + "github.com/scaleway/scaleway-cli/v2/internal/namespaces/container/v1" "github.com/scaleway/scaleway-cli/v2/internal/namespaces/registry/v1" "github.com/scaleway/scaleway-cli/v2/internal/testhelpers" containerSDK "github.com/scaleway/scaleway-sdk-go/api/container/v1" diff --git a/internal/namespaces/container/v1/custom_logs.go b/internal/namespaces/container/v1/custom_logs.go new file mode 100644 index 0000000000..fadc4f3e40 --- /dev/null +++ b/internal/namespaces/container/v1/custom_logs.go @@ -0,0 +1,231 @@ +package container + +import ( + "context" + "encoding/json" + "errors" + "fmt" + "io" + "net/http" + "net/url" + "reflect" + "strconv" + "time" + + "github.com/scaleway/scaleway-cli/v2/core" + "github.com/scaleway/scaleway-sdk-go/api/cockpit/v1" + "github.com/scaleway/scaleway-sdk-go/scw" +) + +type containerLogsRequest struct { + ContainerID string + Region scw.Region +} + +func containerLogs() *core.Command { + return &core.Command{ + Short: `Show container logs`, + Long: `Display the logs of a container from the last 2 hours`, + Namespace: "container", + Resource: "container", + Verb: "logs", + Groups: []string{"utility"}, + ArgsType: reflect.TypeOf(containerLogsRequest{}), + ArgSpecs: core.ArgSpecs{ + { + Name: "container-id", + Short: "ID of the container which logs are to be displayed", + Positional: true, + }, + core.RegionArgSpec( + scw.RegionFrPar, + scw.RegionNlAms, + scw.RegionPlWaw, + ), + }, + Run: containerLogsRun, + } +} + +func containerLogsRun(ctx context.Context, argsI any) (any, error) { + args := argsI.(*containerLogsRequest) + scwClient := core.ExtractClient(ctx) + httpClient := core.ExtractHTTPClient(ctx) + cockpitAPI := cockpit.NewRegionalAPI(scwClient) + + // Find at least one data source for logs + ds, err := cockpitAPI.ListDataSources(&cockpit.RegionalAPIListDataSourcesRequest{ + Region: args.Region, + Origin: cockpit.DataSourceOriginScaleway, + Types: []cockpit.DataSourceType{cockpit.DataSourceTypeLogs}, + }, scw.WithAllPages(), scw.WithContext(ctx)) + if err != nil { + return nil, err + } + + if ds.TotalCount == 0 { + return nil, errors.New("could not find any cockpit datasource to fetch the logs from") + } + + // Setup request + req, err := buildLokiQuery(ds.DataSources[0].URL, args.ContainerID) + if err != nil { + return nil, err + } + + // Setup token + token, isNew, err := getOrCreateToken( + ctx, + cockpitAPI, + args.Region, + cockpit.TokenScopeReadOnlyLogs, + ) + if err != nil { + return nil, err + } + if isNew { + defer deleteToken(ctx, cockpitAPI, args.Region, token) + } + + if token != nil && token.SecretKey != nil { + req.Header.Set("X-Token", *token.SecretKey) + } + + // Query datasource + var logsResponse []LogEntry + + resp, err := httpClient.Do(req) + if err != nil { + return nil, fmt.Errorf("Error making request: %v\n", err) + } + defer resp.Body.Close() + + logsResponse, err = readLokiResponseBody(resp.Body) + if err != nil { + return nil, err + } + + return logsResponse, nil +} + +// curl -s -H "X-Token: $COCKPIT_TOKEN" --data-urlencode 'query={resource_type="serverless_container", resource_id="'$CONTAINER_ID'"}' \ +// --data-urlencode "start=2026-01-26T16:00:00Z" --data-urlencode "end=2026-01-26T16:30:00Z" \ +// $SCALEWAY_LOGS_DATASOURCE_URL/loki/api/v1/query_range | +// jq -r '.data.result[0].values[] | .[1]' | jq -r '.resource_instance + " " + .message' +func buildLokiQuery(datasourceURL, containerID string) (*http.Request, error) { + query := fmt.Sprintf( + `{resource_type="serverless_container", resource_id="%s"}`, + containerID, + ) + start := time.Now().Add(-2 * time.Hour).Format(time.RFC3339) // TODO: customize timespan ? + end := time.Now().Format(time.RFC3339) + + reqURL := datasourceURL + "/loki/api/v1/query_range" + + formData := url.Values{} + formData.Set("query", query) + formData.Set("start", start) + formData.Set("end", end) + + req, err := http.NewRequest(http.MethodGet, reqURL, nil) + if err != nil { + return nil, fmt.Errorf("Error creating request: %v\n", err) + } + + // req.Header.Set("Content-Type", "application/x-www-form-urlencoded") + req.URL.RawQuery = formData.Encode() + + return req, nil +} + +type LokiResponse struct { + Data struct { + Result []struct { + Values [][]string `json:"values"` + } `json:"result"` + } `json:"data"` +} + +type LogEntry struct { + Timestamp time.Time `json:"timestamp"` + ResourceInstance string `json:"resource_instance"` + Message string `json:"message"` +} + +func readLokiResponseBody(requestBody io.ReadCloser) ([]LogEntry, error) { + body, err := io.ReadAll(requestBody) + if err != nil { + return nil, fmt.Errorf("Error reading response: %v\n", err) + } + + var lokiResp LokiResponse + + if err := json.Unmarshal(body, &lokiResp); err != nil { + return nil, fmt.Errorf("Error parsing JSON: %v\n", err) + } + + if len(lokiResp.Data.Result) == 0 { + // || len(lokiResp.Data.Result[0].Values) == 0 { TODO: rework no-data case + return nil, errors.New("No results found\n") + } + + var response []LogEntry + + for _, value := range lokiResp.Data.Result[0].Values { + if len(value) < 2 { + continue + } + + var entry LogEntry + + if err := json.Unmarshal([]byte(value[1]), &entry); err != nil { + return nil, fmt.Errorf("Error parsing log entry: %v\n", err) + } + + if nanos, err := strconv.Atoi(value[0]); err == nil { + entry.Timestamp = time.Unix(0, int64(nanos)) + } else { + return nil, err + } + + response = append(response, entry) + } + + return response, nil +} + +func deleteToken( + ctx context.Context, + api *cockpit.RegionalAPI, + region scw.Region, + token *cockpit.Token, +) error { + return api.DeleteToken(&cockpit.RegionalAPIDeleteTokenRequest{ + Region: region, + TokenID: token.ID, + }, scw.WithContext(ctx)) +} + +func getOrCreateToken( + ctx context.Context, + cockpitAPI *cockpit.RegionalAPI, + region scw.Region, + scope cockpit.TokenScope, +) (*cockpit.Token, bool, error) { + token, err := cockpitAPI.CreateToken(&cockpit.RegionalAPICreateTokenRequest{ + Region: region, + // ProjectID: "", + Name: "cli-generated-for-container-logs", + TokenScopes: []cockpit.TokenScope{ + scope, + // cockpit.TokenScopeFullAccessMetricsRules, + // cockpit.TokenScopeFullAccessLogsRules, + + }, + }, scw.WithContext(ctx)) + if err != nil { + return nil, false, err + } + + return token, true, nil +} diff --git a/internal/namespaces/container/v1/custom_logs_test.go b/internal/namespaces/container/v1/custom_logs_test.go new file mode 100644 index 0000000000..3831b54d7b --- /dev/null +++ b/internal/namespaces/container/v1/custom_logs_test.go @@ -0,0 +1,33 @@ +package container_test + +import ( + "fmt" + "testing" + + "github.com/scaleway/scaleway-cli/v2/core" + "github.com/scaleway/scaleway-cli/v2/internal/namespaces/container/v1" +) + +func Test_ContainerLogs(t *testing.T) { + image := "hello-world:latest" + + t.Run("Simple", core.Test(&core.TestConfig{ + Commands: container.GetCommands(), + BeforeFunc: core.BeforeFuncCombine( + createNamespace("Namespace"), + core.ExecStoreBeforeCmd("Container", fmt.Sprintf( + "scw container container create namespace-id={{ .Namespace.ID }} name=%s image=%s -w", + core.GetRandomName("test-logs"), + image, + )), + ), + Cmd: "scw container container logs {{ .Container.ID }}", + Check: core.TestCheckCombine( + core.TestCheckExitCode(0), + core.TestCheckGolden(), + ), + AfterFunc: core.AfterFuncCombine( + deleteNamespace("Namespace"), + ), + })) +} diff --git a/internal/namespaces/container/v1/testdata/test-container-logs-simple.cassette.yaml b/internal/namespaces/container/v1/testdata/test-container-logs-simple.cassette.yaml new file mode 100644 index 0000000000..3ee9c25747 --- /dev/null +++ b/internal/namespaces/container/v1/testdata/test-container-logs-simple.cassette.yaml @@ -0,0 +1,985 @@ +--- +version: 2 +interactions: + - id: 0 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 162 + host: api.scaleway.com + body: '{"project_id":"fa1e3217-dc80-42ac-85c3-3f034b78b552","name":"cli-ns-dazzling-bartik","environment_variables":null,"secret_environment_variables":null,"tags":null}' + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1/regions/fr-par/namespaces + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 398 + body: '{"id":"db49186b-2bc9-43a5-a381-b1cc35f4f354","name":"cli-ns-dazzling-bartik","organization_id":"fa1e3217-dc80-42ac-85c3-3f034b78b552","project_id":"fa1e3217-dc80-42ac-85c3-3f034b78b552","description":"","status":"creating","environment_variables":{},"secret_environment_variables":{},"tags":[],"created_at":"2026-05-19T11:55:15.086506Z","updated_at":"2026-05-19T11:55:15.086506Z","region":"fr-par"}' + headers: + Content-Length: + - "398" + Content-Type: + - application/json + Date: + - Tue, 19 May 2026 11:55:15 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + X-Request-Id: + - 9531006b-1a66-4f25-95f9-d3d5da521b79 + status: 200 OK + code: 200 + duration: 1.572750468s + - id: 1 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1/regions/fr-par/namespaces/db49186b-2bc9-43a5-a381-b1cc35f4f354 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 398 + body: '{"id":"db49186b-2bc9-43a5-a381-b1cc35f4f354","name":"cli-ns-dazzling-bartik","organization_id":"fa1e3217-dc80-42ac-85c3-3f034b78b552","project_id":"fa1e3217-dc80-42ac-85c3-3f034b78b552","description":"","status":"creating","environment_variables":{},"secret_environment_variables":{},"tags":[],"created_at":"2026-05-19T11:55:15.086506Z","updated_at":"2026-05-19T11:55:15.086506Z","region":"fr-par"}' + headers: + Content-Length: + - "398" + Content-Type: + - application/json + Date: + - Tue, 19 May 2026 11:55:15 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + X-Request-Id: + - 56117657-9f98-4c27-8ff6-19637f6605e2 + status: 200 OK + code: 200 + duration: 69.858645ms + - id: 2 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1/regions/fr-par/namespaces/db49186b-2bc9-43a5-a381-b1cc35f4f354 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 395 + body: '{"id":"db49186b-2bc9-43a5-a381-b1cc35f4f354","name":"cli-ns-dazzling-bartik","organization_id":"fa1e3217-dc80-42ac-85c3-3f034b78b552","project_id":"fa1e3217-dc80-42ac-85c3-3f034b78b552","description":"","status":"ready","environment_variables":{},"secret_environment_variables":{},"tags":[],"created_at":"2026-05-19T11:55:15.086506Z","updated_at":"2026-05-19T11:55:15.086506Z","region":"fr-par"}' + headers: + Content-Length: + - "395" + Content-Type: + - application/json + Date: + - Tue, 19 May 2026 11:55:30 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + X-Request-Id: + - d0ba6ba1-a77e-43fb-8930-62a30434d1b7 + status: 200 OK + code: 200 + duration: 44.528009ms + - id: 3 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 323 + host: api.scaleway.com + body: '{"namespace_id":"db49186b-2bc9-43a5-a381-b1cc35f4f354","name":"cli-test-logs-festive-galileo","environment_variables":null,"secret_environment_variables":null,"privacy":"public","image":"hello-world:latest","protocol":"http1","port":8080,"https_connections_only":false,"sandbox":"v2","tags":null,"command":null,"args":null}' + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1/regions/fr-par/containers + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 908 + body: '{"id":"5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40","name":"cli-test-logs-festive-galileo","namespace_id":"db49186b-2bc9-43a5-a381-b1cc35f4f354","description":"","status":"creating","created_at":"2026-05-19T11:55:31.027942Z","updated_at":"2026-05-19T11:55:31.027942Z","min_scale":0,"max_scale":5,"memory_limit_bytes":2048000000,"mvcpu_limit":1000,"timeout":"300s","privacy":"public","image":"hello-world:latest","protocol":"http1","port":8080,"https_connections_only":false,"sandbox":"v2","local_storage_limit_bytes":1000000000,"scaling_option":{"concurrent_requests_threshold":50},"tags":[],"command":[],"args":[],"environment_variables":{},"public_endpoint":"https://clinsdazzlingbartikdb49186b-cli-test-logs-festive-galileo.functions.fnc.fr-par.scw.cloud","liveness_probe":{"failure_threshold":30,"interval":"10s","timeout":"1s","tcp":{}},"startup_probe":null,"secret_environment_variables":{},"region":"fr-par"}' + headers: + Content-Length: + - "908" + Content-Type: + - application/json + Date: + - Tue, 19 May 2026 11:55:31 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + X-Request-Id: + - 79f28f2b-f19c-4f04-80b5-6707c75f4eb6 + status: 200 OK + code: 200 + duration: 289.898715ms + - id: 4 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1/regions/fr-par/containers/5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 908 + body: '{"id":"5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40","name":"cli-test-logs-festive-galileo","namespace_id":"db49186b-2bc9-43a5-a381-b1cc35f4f354","description":"","status":"creating","created_at":"2026-05-19T11:55:31.027942Z","updated_at":"2026-05-19T11:55:31.027942Z","min_scale":0,"max_scale":5,"memory_limit_bytes":2048000000,"mvcpu_limit":1000,"timeout":"300s","privacy":"public","image":"hello-world:latest","protocol":"http1","port":8080,"https_connections_only":false,"sandbox":"v2","local_storage_limit_bytes":1000000000,"scaling_option":{"concurrent_requests_threshold":50},"tags":[],"command":[],"args":[],"environment_variables":{},"public_endpoint":"https://clinsdazzlingbartikdb49186b-cli-test-logs-festive-galileo.functions.fnc.fr-par.scw.cloud","liveness_probe":{"failure_threshold":30,"interval":"10s","timeout":"1s","tcp":{}},"startup_probe":null,"secret_environment_variables":{},"region":"fr-par"}' + headers: + Content-Length: + - "908" + Content-Type: + - application/json + Date: + - Tue, 19 May 2026 11:55:31 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + X-Request-Id: + - 0d8ee3da-afa5-4f80-a237-efd849641771 + status: 200 OK + code: 200 + duration: 50.375046ms + - id: 5 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1/regions/fr-par/containers/5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 908 + body: '{"id":"5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40","name":"cli-test-logs-festive-galileo","namespace_id":"db49186b-2bc9-43a5-a381-b1cc35f4f354","description":"","status":"creating","created_at":"2026-05-19T11:55:31.027942Z","updated_at":"2026-05-19T11:55:31.027942Z","min_scale":0,"max_scale":5,"memory_limit_bytes":2048000000,"mvcpu_limit":1000,"timeout":"300s","privacy":"public","image":"hello-world:latest","protocol":"http1","port":8080,"https_connections_only":false,"sandbox":"v2","local_storage_limit_bytes":1000000000,"scaling_option":{"concurrent_requests_threshold":50},"tags":[],"command":[],"args":[],"environment_variables":{},"public_endpoint":"https://clinsdazzlingbartikdb49186b-cli-test-logs-festive-galileo.functions.fnc.fr-par.scw.cloud","liveness_probe":{"failure_threshold":30,"interval":"10s","timeout":"1s","tcp":{}},"startup_probe":null,"secret_environment_variables":{},"region":"fr-par"}' + headers: + Content-Length: + - "908" + Content-Type: + - application/json + Date: + - Tue, 19 May 2026 11:55:46 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + X-Request-Id: + - b5ed9327-ae21-495e-acbe-92a4be0d7711 + status: 200 OK + code: 200 + duration: 62.687007ms + - id: 6 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1/regions/fr-par/containers/5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 908 + body: '{"id":"5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40","name":"cli-test-logs-festive-galileo","namespace_id":"db49186b-2bc9-43a5-a381-b1cc35f4f354","description":"","status":"creating","created_at":"2026-05-19T11:55:31.027942Z","updated_at":"2026-05-19T11:55:31.027942Z","min_scale":0,"max_scale":5,"memory_limit_bytes":2048000000,"mvcpu_limit":1000,"timeout":"300s","privacy":"public","image":"hello-world:latest","protocol":"http1","port":8080,"https_connections_only":false,"sandbox":"v2","local_storage_limit_bytes":1000000000,"scaling_option":{"concurrent_requests_threshold":50},"tags":[],"command":[],"args":[],"environment_variables":{},"public_endpoint":"https://clinsdazzlingbartikdb49186b-cli-test-logs-festive-galileo.functions.fnc.fr-par.scw.cloud","liveness_probe":{"failure_threshold":30,"interval":"10s","timeout":"1s","tcp":{}},"startup_probe":null,"secret_environment_variables":{},"region":"fr-par"}' + headers: + Content-Length: + - "908" + Content-Type: + - application/json + Date: + - Tue, 19 May 2026 11:56:01 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + X-Request-Id: + - ea2954b7-cbfb-46c0-9620-dffe5bddd99f + status: 200 OK + code: 200 + duration: 72.060745ms + - id: 7 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1/regions/fr-par/containers/5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 908 + body: '{"id":"5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40","name":"cli-test-logs-festive-galileo","namespace_id":"db49186b-2bc9-43a5-a381-b1cc35f4f354","description":"","status":"creating","created_at":"2026-05-19T11:55:31.027942Z","updated_at":"2026-05-19T11:55:31.027942Z","min_scale":0,"max_scale":5,"memory_limit_bytes":2048000000,"mvcpu_limit":1000,"timeout":"300s","privacy":"public","image":"hello-world:latest","protocol":"http1","port":8080,"https_connections_only":false,"sandbox":"v2","local_storage_limit_bytes":1000000000,"scaling_option":{"concurrent_requests_threshold":50},"tags":[],"command":[],"args":[],"environment_variables":{},"public_endpoint":"https://clinsdazzlingbartikdb49186b-cli-test-logs-festive-galileo.functions.fnc.fr-par.scw.cloud","liveness_probe":{"failure_threshold":30,"interval":"10s","timeout":"1s","tcp":{}},"startup_probe":null,"secret_environment_variables":{},"region":"fr-par"}' + headers: + Content-Length: + - "908" + Content-Type: + - application/json + Date: + - Tue, 19 May 2026 11:56:16 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + X-Request-Id: + - bedbb441-c1da-42de-adf8-256052cfee88 + status: 200 OK + code: 200 + duration: 41.656008ms + - id: 8 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1/regions/fr-par/containers/5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 908 + body: '{"id":"5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40","name":"cli-test-logs-festive-galileo","namespace_id":"db49186b-2bc9-43a5-a381-b1cc35f4f354","description":"","status":"creating","created_at":"2026-05-19T11:55:31.027942Z","updated_at":"2026-05-19T11:55:31.027942Z","min_scale":0,"max_scale":5,"memory_limit_bytes":2048000000,"mvcpu_limit":1000,"timeout":"300s","privacy":"public","image":"hello-world:latest","protocol":"http1","port":8080,"https_connections_only":false,"sandbox":"v2","local_storage_limit_bytes":1000000000,"scaling_option":{"concurrent_requests_threshold":50},"tags":[],"command":[],"args":[],"environment_variables":{},"public_endpoint":"https://clinsdazzlingbartikdb49186b-cli-test-logs-festive-galileo.functions.fnc.fr-par.scw.cloud","liveness_probe":{"failure_threshold":30,"interval":"10s","timeout":"1s","tcp":{}},"startup_probe":null,"secret_environment_variables":{},"region":"fr-par"}' + headers: + Content-Length: + - "908" + Content-Type: + - application/json + Date: + - Tue, 19 May 2026 11:56:31 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + X-Request-Id: + - 07e59513-2070-4fd5-a37f-c9dfd261b4d0 + status: 200 OK + code: 200 + duration: 46.288754ms + - id: 9 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1/regions/fr-par/containers/5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 908 + body: '{"id":"5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40","name":"cli-test-logs-festive-galileo","namespace_id":"db49186b-2bc9-43a5-a381-b1cc35f4f354","description":"","status":"creating","created_at":"2026-05-19T11:55:31.027942Z","updated_at":"2026-05-19T11:55:31.027942Z","min_scale":0,"max_scale":5,"memory_limit_bytes":2048000000,"mvcpu_limit":1000,"timeout":"300s","privacy":"public","image":"hello-world:latest","protocol":"http1","port":8080,"https_connections_only":false,"sandbox":"v2","local_storage_limit_bytes":1000000000,"scaling_option":{"concurrent_requests_threshold":50},"tags":[],"command":[],"args":[],"environment_variables":{},"public_endpoint":"https://clinsdazzlingbartikdb49186b-cli-test-logs-festive-galileo.functions.fnc.fr-par.scw.cloud","liveness_probe":{"failure_threshold":30,"interval":"10s","timeout":"1s","tcp":{}},"startup_probe":null,"secret_environment_variables":{},"region":"fr-par"}' + headers: + Content-Length: + - "908" + Content-Type: + - application/json + Date: + - Tue, 19 May 2026 11:56:46 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + X-Request-Id: + - 9de55222-f006-4b9f-9ec4-925305e02c16 + status: 200 OK + code: 200 + duration: 205.012934ms + - id: 10 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1/regions/fr-par/containers/5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 908 + body: '{"id":"5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40","name":"cli-test-logs-festive-galileo","namespace_id":"db49186b-2bc9-43a5-a381-b1cc35f4f354","description":"","status":"creating","created_at":"2026-05-19T11:55:31.027942Z","updated_at":"2026-05-19T11:55:31.027942Z","min_scale":0,"max_scale":5,"memory_limit_bytes":2048000000,"mvcpu_limit":1000,"timeout":"300s","privacy":"public","image":"hello-world:latest","protocol":"http1","port":8080,"https_connections_only":false,"sandbox":"v2","local_storage_limit_bytes":1000000000,"scaling_option":{"concurrent_requests_threshold":50},"tags":[],"command":[],"args":[],"environment_variables":{},"public_endpoint":"https://clinsdazzlingbartikdb49186b-cli-test-logs-festive-galileo.functions.fnc.fr-par.scw.cloud","liveness_probe":{"failure_threshold":30,"interval":"10s","timeout":"1s","tcp":{}},"startup_probe":null,"secret_environment_variables":{},"region":"fr-par"}' + headers: + Content-Length: + - "908" + Content-Type: + - application/json + Date: + - Tue, 19 May 2026 11:57:01 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + X-Request-Id: + - aef23a90-3162-4379-9cd4-dd8fba37f9d0 + status: 200 OK + code: 200 + duration: 48.790571ms + - id: 11 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1/regions/fr-par/containers/5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 908 + body: '{"id":"5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40","name":"cli-test-logs-festive-galileo","namespace_id":"db49186b-2bc9-43a5-a381-b1cc35f4f354","description":"","status":"creating","created_at":"2026-05-19T11:55:31.027942Z","updated_at":"2026-05-19T11:55:31.027942Z","min_scale":0,"max_scale":5,"memory_limit_bytes":2048000000,"mvcpu_limit":1000,"timeout":"300s","privacy":"public","image":"hello-world:latest","protocol":"http1","port":8080,"https_connections_only":false,"sandbox":"v2","local_storage_limit_bytes":1000000000,"scaling_option":{"concurrent_requests_threshold":50},"tags":[],"command":[],"args":[],"environment_variables":{},"public_endpoint":"https://clinsdazzlingbartikdb49186b-cli-test-logs-festive-galileo.functions.fnc.fr-par.scw.cloud","liveness_probe":{"failure_threshold":30,"interval":"10s","timeout":"1s","tcp":{}},"startup_probe":null,"secret_environment_variables":{},"region":"fr-par"}' + headers: + Content-Length: + - "908" + Content-Type: + - application/json + Date: + - Tue, 19 May 2026 11:57:16 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + X-Request-Id: + - 577a7dd2-994b-4ff8-bdd2-c68a1a2440b0 + status: 200 OK + code: 200 + duration: 50.248529ms + - id: 12 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1/regions/fr-par/containers/5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 908 + body: '{"id":"5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40","name":"cli-test-logs-festive-galileo","namespace_id":"db49186b-2bc9-43a5-a381-b1cc35f4f354","description":"","status":"creating","created_at":"2026-05-19T11:55:31.027942Z","updated_at":"2026-05-19T11:55:31.027942Z","min_scale":0,"max_scale":5,"memory_limit_bytes":2048000000,"mvcpu_limit":1000,"timeout":"300s","privacy":"public","image":"hello-world:latest","protocol":"http1","port":8080,"https_connections_only":false,"sandbox":"v2","local_storage_limit_bytes":1000000000,"scaling_option":{"concurrent_requests_threshold":50},"tags":[],"command":[],"args":[],"environment_variables":{},"public_endpoint":"https://clinsdazzlingbartikdb49186b-cli-test-logs-festive-galileo.functions.fnc.fr-par.scw.cloud","liveness_probe":{"failure_threshold":30,"interval":"10s","timeout":"1s","tcp":{}},"startup_probe":null,"secret_environment_variables":{},"region":"fr-par"}' + headers: + Content-Length: + - "908" + Content-Type: + - application/json + Date: + - Tue, 19 May 2026 11:57:31 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + X-Request-Id: + - c35a2b0f-4116-479e-a8f9-0384c4381f6a + status: 200 OK + code: 200 + duration: 40.906817ms + - id: 13 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1/regions/fr-par/containers/5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 908 + body: '{"id":"5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40","name":"cli-test-logs-festive-galileo","namespace_id":"db49186b-2bc9-43a5-a381-b1cc35f4f354","description":"","status":"creating","created_at":"2026-05-19T11:55:31.027942Z","updated_at":"2026-05-19T11:55:31.027942Z","min_scale":0,"max_scale":5,"memory_limit_bytes":2048000000,"mvcpu_limit":1000,"timeout":"300s","privacy":"public","image":"hello-world:latest","protocol":"http1","port":8080,"https_connections_only":false,"sandbox":"v2","local_storage_limit_bytes":1000000000,"scaling_option":{"concurrent_requests_threshold":50},"tags":[],"command":[],"args":[],"environment_variables":{},"public_endpoint":"https://clinsdazzlingbartikdb49186b-cli-test-logs-festive-galileo.functions.fnc.fr-par.scw.cloud","liveness_probe":{"failure_threshold":30,"interval":"10s","timeout":"1s","tcp":{}},"startup_probe":null,"secret_environment_variables":{},"region":"fr-par"}' + headers: + Content-Length: + - "908" + Content-Type: + - application/json + Date: + - Tue, 19 May 2026 11:57:47 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + X-Request-Id: + - 31df0752-2ea0-470a-b7f3-969c6cfcb2a2 + status: 200 OK + code: 200 + duration: 62.585545ms + - id: 14 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1/regions/fr-par/containers/5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 908 + body: '{"id":"5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40","name":"cli-test-logs-festive-galileo","namespace_id":"db49186b-2bc9-43a5-a381-b1cc35f4f354","description":"","status":"creating","created_at":"2026-05-19T11:55:31.027942Z","updated_at":"2026-05-19T11:55:31.027942Z","min_scale":0,"max_scale":5,"memory_limit_bytes":2048000000,"mvcpu_limit":1000,"timeout":"300s","privacy":"public","image":"hello-world:latest","protocol":"http1","port":8080,"https_connections_only":false,"sandbox":"v2","local_storage_limit_bytes":1000000000,"scaling_option":{"concurrent_requests_threshold":50},"tags":[],"command":[],"args":[],"environment_variables":{},"public_endpoint":"https://clinsdazzlingbartikdb49186b-cli-test-logs-festive-galileo.functions.fnc.fr-par.scw.cloud","liveness_probe":{"failure_threshold":30,"interval":"10s","timeout":"1s","tcp":{}},"startup_probe":null,"secret_environment_variables":{},"region":"fr-par"}' + headers: + Content-Length: + - "908" + Content-Type: + - application/json + Date: + - Tue, 19 May 2026 11:58:02 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + X-Request-Id: + - f9e0b53d-91a4-4b3e-9f23-a5d48fec2269 + status: 200 OK + code: 200 + duration: 372.384205ms + - id: 15 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1/regions/fr-par/containers/5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 908 + body: '{"id":"5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40","name":"cli-test-logs-festive-galileo","namespace_id":"db49186b-2bc9-43a5-a381-b1cc35f4f354","description":"","status":"creating","created_at":"2026-05-19T11:55:31.027942Z","updated_at":"2026-05-19T11:55:31.027942Z","min_scale":0,"max_scale":5,"memory_limit_bytes":2048000000,"mvcpu_limit":1000,"timeout":"300s","privacy":"public","image":"hello-world:latest","protocol":"http1","port":8080,"https_connections_only":false,"sandbox":"v2","local_storage_limit_bytes":1000000000,"scaling_option":{"concurrent_requests_threshold":50},"tags":[],"command":[],"args":[],"environment_variables":{},"public_endpoint":"https://clinsdazzlingbartikdb49186b-cli-test-logs-festive-galileo.functions.fnc.fr-par.scw.cloud","liveness_probe":{"failure_threshold":30,"interval":"10s","timeout":"1s","tcp":{}},"startup_probe":null,"secret_environment_variables":{},"region":"fr-par"}' + headers: + Content-Length: + - "908" + Content-Type: + - application/json + Date: + - Tue, 19 May 2026 11:58:17 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + X-Request-Id: + - 03e6c5cf-8bf5-45db-b48a-eaafa8d7948a + status: 200 OK + code: 200 + duration: 51.036574ms + - id: 16 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1/regions/fr-par/containers/5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 908 + body: '{"id":"5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40","name":"cli-test-logs-festive-galileo","namespace_id":"db49186b-2bc9-43a5-a381-b1cc35f4f354","description":"","status":"creating","created_at":"2026-05-19T11:55:31.027942Z","updated_at":"2026-05-19T11:55:31.027942Z","min_scale":0,"max_scale":5,"memory_limit_bytes":2048000000,"mvcpu_limit":1000,"timeout":"300s","privacy":"public","image":"hello-world:latest","protocol":"http1","port":8080,"https_connections_only":false,"sandbox":"v2","local_storage_limit_bytes":1000000000,"scaling_option":{"concurrent_requests_threshold":50},"tags":[],"command":[],"args":[],"environment_variables":{},"public_endpoint":"https://clinsdazzlingbartikdb49186b-cli-test-logs-festive-galileo.functions.fnc.fr-par.scw.cloud","liveness_probe":{"failure_threshold":30,"interval":"10s","timeout":"1s","tcp":{}},"startup_probe":null,"secret_environment_variables":{},"region":"fr-par"}' + headers: + Content-Length: + - "908" + Content-Type: + - application/json + Date: + - Tue, 19 May 2026 11:58:32 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + X-Request-Id: + - bf38c4f7-b764-42d5-bdfa-910a539c4107 + status: 200 OK + code: 200 + duration: 51.93507ms + - id: 17 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1/regions/fr-par/containers/5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 908 + body: '{"id":"5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40","name":"cli-test-logs-festive-galileo","namespace_id":"db49186b-2bc9-43a5-a381-b1cc35f4f354","description":"","status":"creating","created_at":"2026-05-19T11:55:31.027942Z","updated_at":"2026-05-19T11:55:31.027942Z","min_scale":0,"max_scale":5,"memory_limit_bytes":2048000000,"mvcpu_limit":1000,"timeout":"300s","privacy":"public","image":"hello-world:latest","protocol":"http1","port":8080,"https_connections_only":false,"sandbox":"v2","local_storage_limit_bytes":1000000000,"scaling_option":{"concurrent_requests_threshold":50},"tags":[],"command":[],"args":[],"environment_variables":{},"public_endpoint":"https://clinsdazzlingbartikdb49186b-cli-test-logs-festive-galileo.functions.fnc.fr-par.scw.cloud","liveness_probe":{"failure_threshold":30,"interval":"10s","timeout":"1s","tcp":{}},"startup_probe":null,"secret_environment_variables":{},"region":"fr-par"}' + headers: + Content-Length: + - "908" + Content-Type: + - application/json + Date: + - Tue, 19 May 2026 11:58:47 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + X-Request-Id: + - a2653f22-ec56-406e-b9b8-1f076c2dbf19 + status: 200 OK + code: 200 + duration: 57.231871ms + - id: 18 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1/regions/fr-par/containers/5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 908 + body: '{"id":"5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40","name":"cli-test-logs-festive-galileo","namespace_id":"db49186b-2bc9-43a5-a381-b1cc35f4f354","description":"","status":"creating","created_at":"2026-05-19T11:55:31.027942Z","updated_at":"2026-05-19T11:55:31.027942Z","min_scale":0,"max_scale":5,"memory_limit_bytes":2048000000,"mvcpu_limit":1000,"timeout":"300s","privacy":"public","image":"hello-world:latest","protocol":"http1","port":8080,"https_connections_only":false,"sandbox":"v2","local_storage_limit_bytes":1000000000,"scaling_option":{"concurrent_requests_threshold":50},"tags":[],"command":[],"args":[],"environment_variables":{},"public_endpoint":"https://clinsdazzlingbartikdb49186b-cli-test-logs-festive-galileo.functions.fnc.fr-par.scw.cloud","liveness_probe":{"failure_threshold":30,"interval":"10s","timeout":"1s","tcp":{}},"startup_probe":null,"secret_environment_variables":{},"region":"fr-par"}' + headers: + Content-Length: + - "908" + Content-Type: + - application/json + Date: + - Tue, 19 May 2026 11:59:02 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + X-Request-Id: + - 9725b7c5-9f4d-4d0e-9bab-c4f90bf073c4 + status: 200 OK + code: 200 + duration: 56.158567ms + - id: 19 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1/regions/fr-par/containers/5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 908 + body: '{"id":"5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40","name":"cli-test-logs-festive-galileo","namespace_id":"db49186b-2bc9-43a5-a381-b1cc35f4f354","description":"","status":"creating","created_at":"2026-05-19T11:55:31.027942Z","updated_at":"2026-05-19T11:55:31.027942Z","min_scale":0,"max_scale":5,"memory_limit_bytes":2048000000,"mvcpu_limit":1000,"timeout":"300s","privacy":"public","image":"hello-world:latest","protocol":"http1","port":8080,"https_connections_only":false,"sandbox":"v2","local_storage_limit_bytes":1000000000,"scaling_option":{"concurrent_requests_threshold":50},"tags":[],"command":[],"args":[],"environment_variables":{},"public_endpoint":"https://clinsdazzlingbartikdb49186b-cli-test-logs-festive-galileo.functions.fnc.fr-par.scw.cloud","liveness_probe":{"failure_threshold":30,"interval":"10s","timeout":"1s","tcp":{}},"startup_probe":null,"secret_environment_variables":{},"region":"fr-par"}' + headers: + Content-Length: + - "908" + Content-Type: + - application/json + Date: + - Tue, 19 May 2026 11:59:17 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + X-Request-Id: + - 9f836520-417a-44ca-9e43-04a04f1c75ea + status: 200 OK + code: 200 + duration: 60.601631ms + - id: 20 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1/regions/fr-par/containers/5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 908 + body: '{"id":"5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40","name":"cli-test-logs-festive-galileo","namespace_id":"db49186b-2bc9-43a5-a381-b1cc35f4f354","description":"","status":"creating","created_at":"2026-05-19T11:55:31.027942Z","updated_at":"2026-05-19T11:55:31.027942Z","min_scale":0,"max_scale":5,"memory_limit_bytes":2048000000,"mvcpu_limit":1000,"timeout":"300s","privacy":"public","image":"hello-world:latest","protocol":"http1","port":8080,"https_connections_only":false,"sandbox":"v2","local_storage_limit_bytes":1000000000,"scaling_option":{"concurrent_requests_threshold":50},"tags":[],"command":[],"args":[],"environment_variables":{},"public_endpoint":"https://clinsdazzlingbartikdb49186b-cli-test-logs-festive-galileo.functions.fnc.fr-par.scw.cloud","liveness_probe":{"failure_threshold":30,"interval":"10s","timeout":"1s","tcp":{}},"startup_probe":null,"secret_environment_variables":{},"region":"fr-par"}' + headers: + Content-Length: + - "908" + Content-Type: + - application/json + Date: + - Tue, 19 May 2026 11:59:32 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + X-Request-Id: + - 00985f9d-186e-4b9e-9369-ab2b31db11cc + status: 200 OK + code: 200 + duration: 60.045039ms + - id: 21 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1/regions/fr-par/containers/5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 908 + body: '{"id":"5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40","name":"cli-test-logs-festive-galileo","namespace_id":"db49186b-2bc9-43a5-a381-b1cc35f4f354","description":"","status":"creating","created_at":"2026-05-19T11:55:31.027942Z","updated_at":"2026-05-19T11:55:31.027942Z","min_scale":0,"max_scale":5,"memory_limit_bytes":2048000000,"mvcpu_limit":1000,"timeout":"300s","privacy":"public","image":"hello-world:latest","protocol":"http1","port":8080,"https_connections_only":false,"sandbox":"v2","local_storage_limit_bytes":1000000000,"scaling_option":{"concurrent_requests_threshold":50},"tags":[],"command":[],"args":[],"environment_variables":{},"public_endpoint":"https://clinsdazzlingbartikdb49186b-cli-test-logs-festive-galileo.functions.fnc.fr-par.scw.cloud","liveness_probe":{"failure_threshold":30,"interval":"10s","timeout":"1s","tcp":{}},"startup_probe":null,"secret_environment_variables":{},"region":"fr-par"}' + headers: + Content-Length: + - "908" + Content-Type: + - application/json + Date: + - Tue, 19 May 2026 11:59:47 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + X-Request-Id: + - 3c8d915a-561f-4c2c-9e05-065db722dac4 + status: 200 OK + code: 200 + duration: 48.413936ms + - id: 22 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1/regions/fr-par/containers/5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 908 + body: '{"id":"5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40","name":"cli-test-logs-festive-galileo","namespace_id":"db49186b-2bc9-43a5-a381-b1cc35f4f354","description":"","status":"creating","created_at":"2026-05-19T11:55:31.027942Z","updated_at":"2026-05-19T11:55:31.027942Z","min_scale":0,"max_scale":5,"memory_limit_bytes":2048000000,"mvcpu_limit":1000,"timeout":"300s","privacy":"public","image":"hello-world:latest","protocol":"http1","port":8080,"https_connections_only":false,"sandbox":"v2","local_storage_limit_bytes":1000000000,"scaling_option":{"concurrent_requests_threshold":50},"tags":[],"command":[],"args":[],"environment_variables":{},"public_endpoint":"https://clinsdazzlingbartikdb49186b-cli-test-logs-festive-galileo.functions.fnc.fr-par.scw.cloud","liveness_probe":{"failure_threshold":30,"interval":"10s","timeout":"1s","tcp":{}},"startup_probe":null,"secret_environment_variables":{},"region":"fr-par"}' + headers: + Content-Length: + - "908" + Content-Type: + - application/json + Date: + - Tue, 19 May 2026 12:00:02 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + X-Request-Id: + - d1cf69ad-ec14-4666-9c6a-8867ca4cabe7 + status: 200 OK + code: 200 + duration: 61.583954ms + - id: 23 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1/regions/fr-par/containers/5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 908 + body: '{"id":"5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40","name":"cli-test-logs-festive-galileo","namespace_id":"db49186b-2bc9-43a5-a381-b1cc35f4f354","description":"","status":"creating","created_at":"2026-05-19T11:55:31.027942Z","updated_at":"2026-05-19T11:55:31.027942Z","min_scale":0,"max_scale":5,"memory_limit_bytes":2048000000,"mvcpu_limit":1000,"timeout":"300s","privacy":"public","image":"hello-world:latest","protocol":"http1","port":8080,"https_connections_only":false,"sandbox":"v2","local_storage_limit_bytes":1000000000,"scaling_option":{"concurrent_requests_threshold":50},"tags":[],"command":[],"args":[],"environment_variables":{},"public_endpoint":"https://clinsdazzlingbartikdb49186b-cli-test-logs-festive-galileo.functions.fnc.fr-par.scw.cloud","liveness_probe":{"failure_threshold":30,"interval":"10s","timeout":"1s","tcp":{}},"startup_probe":null,"secret_environment_variables":{},"region":"fr-par"}' + headers: + Content-Length: + - "908" + Content-Type: + - application/json + Date: + - Tue, 19 May 2026 12:00:18 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + X-Request-Id: + - 75e38f98-f1bd-4ab5-966f-c98ec085b874 + status: 200 OK + code: 200 + duration: 72.018577ms + - id: 24 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1/regions/fr-par/containers/5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 978 + body: '{"id":"5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40","name":"cli-test-logs-festive-galileo","namespace_id":"db49186b-2bc9-43a5-a381-b1cc35f4f354","description":"","status":"error","error_message":"Container is unable to start OR is not listening on port 8080","created_at":"2026-05-19T11:55:31.027942Z","updated_at":"2026-05-19T12:00:32Z","min_scale":0,"max_scale":5,"memory_limit_bytes":2048000000,"mvcpu_limit":1000,"timeout":"300s","privacy":"public","image":"hello-world:latest","protocol":"http1","port":8080,"https_connections_only":false,"sandbox":"v2","local_storage_limit_bytes":1000000000,"scaling_option":{"concurrent_requests_threshold":50},"tags":[],"command":[],"args":[],"environment_variables":{},"public_endpoint":"https://clinsdazzlingbartikdb49186b-cli-test-logs-festive-galileo.functions.fnc.fr-par.scw.cloud","liveness_probe":{"failure_threshold":30,"interval":"10s","timeout":"1s","tcp":{}},"startup_probe":null,"secret_environment_variables":{},"region":"fr-par"}' + headers: + Content-Length: + - "978" + Content-Type: + - application/json + Date: + - Tue, 19 May 2026 12:00:33 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + X-Request-Id: + - d711ec58-cad8-46a4-b6e7-1f7d8806e7df + status: 200 OK + code: 200 + duration: 67.462673ms + - id: 25 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + form: + order_by: + - created_at_asc + origin: + - scaleway + page: + - "1" + project_id: + - fa1e3217-dc80-42ac-85c3-3f034b78b552 + types: + - logs + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/cockpit/v1/regions/fr-par/data-sources?order_by=created_at_asc&origin=scaleway&page=1&project_id=fa1e3217-dc80-42ac-85c3-3f034b78b552&types=logs + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 458 + body: '{"total_count":1,"data_sources":[{"id":"70f266df-eee2-4689-9c46-3284861909c9","project_id":"fa1e3217-dc80-42ac-85c3-3f034b78b552","name":"Scaleway Logs","url":"https://70f266df-eee2-4689-9c46-3284861909c9.logs.cockpit.fr-par.scw.cloud","type":"logs","origin":"scaleway","created_at":"2024-04-17T14:54:47.534704Z","updated_at":"2024-04-17T14:54:47.534704Z","synchronized_with_grafana":true,"retention_days":7,"current_month_usage":5152840,"region":"fr-par"}]}' + headers: + Content-Length: + - "458" + Content-Type: + - application/json + Date: + - Tue, 19 May 2026 12:00:34 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + X-Request-Id: + - 0c2e6ff3-72f3-4b93-8cfb-6f38d49d8779 + status: 200 OK + code: 200 + duration: 1.272982313s + - id: 26 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 129 + host: api.scaleway.com + body: '{"project_id":"fa1e3217-dc80-42ac-85c3-3f034b78b552","name":"cli-generated-for-container-logs","token_scopes":["read_only_logs"]}' + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/cockpit/v1/regions/fr-par/tokens + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 351 + body: '{"id":"4eec016e-ac85-471b-993c-eb09cba79a0d","project_id":"fa1e3217-dc80-42ac-85c3-3f034b78b552","name":"cli-generated-for-container-logs","created_at":"2026-05-19T12:00:34.470125Z","updated_at":"2026-05-19T12:00:34.470125Z","scopes":["read_only_logs"],"secret_key":"f8wxv20M5fY_-zKePSLSY4nht9GWr2E_w3HsejajmyW--j28ODFTakKQNDQAXew3","region":"fr-par"}' + headers: + Content-Length: + - "351" + Content-Type: + - application/json + Date: + - Tue, 19 May 2026 12:00:34 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + X-Request-Id: + - 51ba9473-0903-4370-9437-4cde586c014a + status: 200 OK + code: 200 + duration: 64.387468ms + - id: 27 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: 70f266df-eee2-4689-9c46-3284861909c9.logs.cockpit.fr-par.scw.cloud + form: + end: + - "2026-05-19T14:00:34+02:00" + query: + - '{resource_type="serverless_container", resource_id="5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40"}' + start: + - "2026-05-19T12:00:34+02:00" + headers: + X-Token: + - f8wxv20M5fY_-zKePSLSY4nht9GWr2E_w3HsejajmyW--j28ODFTakKQNDQAXew3 + url: https://70f266df-eee2-4689-9c46-3284861909c9.logs.cockpit.fr-par.scw.cloud/loki/api/v1/query_range?end=2026-05-19T14%3A00%3A34%2B02%3A00&query=%7Bresource_type%3D%22serverless_container%22%2C+resource_id%3D%225a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40%22%7D&start=2026-05-19T12%3A00%3A34%2B02%3A00 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: -1 + body: | + {"status":"success","data":{"resultType":"streams","result":[{"stream":{"detected_level":"unknown","project_id":"fa1e3217-dc80-42ac-85c3-3f034b78b552","project_name":"default","region":"fr-par","resource_id":"5a77c8c8-896e-4ef8-ac0a-c50c3d3e2c40","resource_name":"clinsdazzlingbartikdb49186b-cli-test-logs-festive-galileo","resource_type":"serverless_container","service_name":"serverless_container"},"values":[["1779191912736494524","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"\"}"],["1779191912736492771","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" https://docs.docker.com/get-started/\"}"],["1779191912736490858","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"For more examples and ideas, visit:\"}"],["1779191912736488243","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"\"}"],["1779191912736486489","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" https://hub.docker.com/\"}"],["1779191912736484536","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"Share images, automate workflows, and more with a free Docker ID:\"}"],["1779191912736482111","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"\"}"],["1779191912736480338","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" $ docker run -it ubuntu bash\"}"],["1779191912736477803","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"To try something more ambitious, you can run an Ubuntu container with:\"}"],["1779191912736475920","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"\"}"],["1779191912736474066","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" to your terminal.\"}"],["1779191912736470139","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" 4. The Docker daemon streamed that output to the Docker client, which sent it\"}"],["1779191912736467293","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" executable that produces the output you are currently reading.\"}"],["1779191912736453127","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" 3. The Docker daemon created a new container from that image which runs the\"}"],["1779191912736451203","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" (amd64)\"}"],["1779191912736449270","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" 2. The Docker daemon pulled the \\\"hello-world\\\" image from the Docker Hub.\"}"],["1779191912736447336","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" 1. The Docker client contacted the Docker daemon.\"}"],["1779191912736445442","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"To generate this message, Docker took the following steps:\"}"],["1779191912736443459","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"\"}"],["1779191912736440193","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"This message shows that your installation appears to be working correctly.\"}"],["1779191912736436195","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"Hello from Docker!\"}"],["1779191912736388044","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"\"}"],["1779191831728617236","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"\"}"],["1779191831728615493","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" https://docs.docker.com/get-started/\"}"],["1779191831728613579","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"For more examples and ideas, visit:\"}"],["1779191831728611014","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"\"}"],["1779191831728609301","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" https://hub.docker.com/\"}"],["1779191831728607448","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"Share images, automate workflows, and more with a free Docker ID:\"}"],["1779191831728605544","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"\"}"],["1779191831728603781","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" $ docker run -it ubuntu bash\"}"],["1779191831728601276","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"To try something more ambitious, you can run an Ubuntu container with:\"}"],["1779191831728599383","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"\"}"],["1779191831728597609","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" to your terminal.\"}"],["1779191831728595696","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" 4. The Docker daemon streamed that output to the Docker client, which sent it\"}"],["1779191831728593852","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" executable that produces the output you are currently reading.\"}"],["1779191831728591568","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" 3. The Docker daemon created a new container from that image which runs the\"}"],["1779191831728589674","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" (amd64)\"}"],["1779191831728587711","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" 2. The Docker daemon pulled the \\\"hello-world\\\" image from the Docker Hub.\"}"],["1779191831728583222","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" 1. The Docker client contacted the Docker daemon.\"}"],["1779191831728581329","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"To generate this message, Docker took the following steps:\"}"],["1779191831728578834","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"\"}"],["1779191831728575748","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"This message shows that your installation appears to be working correctly.\"}"],["1779191831728572111","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"Hello from Docker!\"}"],["1779191831728535352","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"\"}"],["1779191781732090796","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"\"}"],["1779191781732089033","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" https://docs.docker.com/get-started/\"}"],["1779191781732087059","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"For more examples and ideas, visit:\"}"],["1779191781732083362","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"\"}"],["1779191781732081619","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" https://hub.docker.com/\"}"],["1779191781732079806","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"Share images, automate workflows, and more with a free Docker ID:\"}"],["1779191781732078012","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"\"}"],["1779191781732076259","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" $ docker run -it ubuntu bash\"}"],["1779191781732073163","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"To try something more ambitious, you can run an Ubuntu container with:\"}"],["1779191781732071330","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"\"}"],["1779191781732069596","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" to your terminal.\"}"],["1779191781732067753","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" 4. The Docker daemon streamed that output to the Docker client, which sent it\"}"],["1779191781732065910","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" executable that produces the output you are currently reading.\"}"],["1779191781732064046","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" 3. The Docker daemon created a new container from that image which runs the\"}"],["1779191781732062062","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" (amd64)\"}"],["1779191781732060099","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" 2. The Docker daemon pulled the \\\"hello-world\\\" image from the Docker Hub.\"}"],["1779191781732058295","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" 1. The Docker client contacted the Docker daemon.\"}"],["1779191781732056412","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"To generate this message, Docker took the following steps:\"}"],["1779191781732054428","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"\"}"],["1779191781732050641","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"This message shows that your installation appears to be working correctly.\"}"],["1779191781732045892","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"Hello from Docker!\"}"],["1779191781732002821","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"\"}"],["1779191750745556393","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"\"}"],["1779191750745554660","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" https://docs.docker.com/get-started/\"}"],["1779191750745552756","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"For more examples and ideas, visit:\"}"],["1779191750745550101","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"\"}"],["1779191750745548368","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" https://hub.docker.com/\"}"],["1779191750745546525","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"Share images, automate workflows, and more with a free Docker ID:\"}"],["1779191750745544711","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"\"}"],["1779191750745542978","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" $ docker run -it ubuntu bash\"}"],["1779191750745540634","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"To try something more ambitious, you can run an Ubuntu container with:\"}"],["1779191750745538790","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"\"}"],["1779191750745537027","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" to your terminal.\"}"],["1779191750745535103","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" 4. The Docker daemon streamed that output to the Docker client, which sent it\"}"],["1779191750745533260","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" executable that produces the output you are currently reading.\"}"],["1779191750745531386","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" 3. The Docker daemon created a new container from that image which runs the\"}"],["1779191750745529453","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" (amd64)\"}"],["1779191750745527549","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" 2. The Docker daemon pulled the \\\"hello-world\\\" image from the Docker Hub.\"}"],["1779191750745525335","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" 1. The Docker client contacted the Docker daemon.\"}"],["1779191750745523441","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"To generate this message, Docker took the following steps:\"}"],["1779191750745521458","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"\"}"],["1779191750745518482","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"This message shows that your installation appears to be working correctly.\"}"],["1779191750745514715","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"Hello from Docker!\"}"],["1779191750745472706","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"\"}"],["1779191735624964598","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"\"}"],["1779191735624962384","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" https://docs.docker.com/get-started/\"}"],["1779191735624959929","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"For more examples and ideas, visit:\"}"],["1779191735624956523","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"\"}"],["1779191735624954369","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" https://hub.docker.com/\"}"],["1779191735624952015","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"Share images, automate workflows, and more with a free Docker ID:\"}"],["1779191735624949360","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"\"}"],["1779191735624946865","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" $ docker run -it ubuntu bash\"}"],["1779191735624943358","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"To try something more ambitious, you can run an Ubuntu container with:\"}"],["1779191735624940744","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\"\"}"],["1779191735624938349","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" to your terminal.\"}"],["1779191735624935904","{\"stream\":\"stdout\",\"resource_instance\":\"clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48\",\"message\":\" 4. The Docker daemon streamed that output to the Docker client, which sent it\"}"]]}],"stats":{"summary":{"bytesProcessedPerSecond":368169,"linesProcessedPerSecond":2275,"totalBytesProcessed":35590,"totalLinesProcessed":220,"execTime":0.096668,"queueTime":0.001322,"subqueries":0,"totalEntriesReturned":100,"splits":2,"shards":2,"totalPostFilterLines":220,"totalStructuredMetadataBytesProcessed":1760},"querier":{"store":{"totalChunksRef":0,"totalChunksDownloaded":0,"chunksDownloadTime":0,"queryReferencedStructuredMetadata":false,"queryUsedV2Engine":false,"chunk":{"headChunkBytes":0,"headChunkLines":0,"decompressedBytes":0,"decompressedLines":0,"compressedBytes":0,"totalDuplicates":100,"postFilterLines":0,"headChunkStructuredMetadataBytes":0,"decompressedStructuredMetadataBytes":0},"chunkRefsFetchTime":28859423,"congestionControlLatency":0,"pipelineWrapperFilteredLines":0,"dataobj":{"prePredicateDecompressedRows":0,"prePredicateDecompressedBytes":0,"prePredicateDecompressedStructuredMetadataBytes":0,"postPredicateRows":0,"postPredicateDecompressedBytes":0,"postPredicateStructuredMetadataBytes":0,"postFilterRows":0,"pagesScanned":0,"pagesDownloaded":0,"pagesDownloadedBytes":0,"pageBatches":0,"totalRowsAvailable":0,"totalPageDownloadTime":0}},"querierExecTime":0.080545},"ingester":{"totalReached":60,"totalChunksMatched":2,"totalBatches":40,"totalLinesSent":200,"store":{"totalChunksRef":0,"totalChunksDownloaded":0,"chunksDownloadTime":0,"queryReferencedStructuredMetadata":false,"queryUsedV2Engine":false,"chunk":{"headChunkBytes":35590,"headChunkLines":220,"decompressedBytes":0,"decompressedLines":0,"compressedBytes":0,"totalDuplicates":0,"postFilterLines":220,"headChunkStructuredMetadataBytes":1760,"decompressedStructuredMetadataBytes":0},"chunkRefsFetchTime":0,"congestionControlLatency":0,"pipelineWrapperFilteredLines":0,"dataobj":{"prePredicateDecompressedRows":0,"prePredicateDecompressedBytes":0,"prePredicateDecompressedStructuredMetadataBytes":0,"postPredicateRows":0,"postPredicateDecompressedBytes":0,"postPredicateStructuredMetadataBytes":0,"postFilterRows":0,"pagesScanned":0,"pagesDownloaded":0,"pagesDownloadedBytes":0,"pageBatches":0,"totalRowsAvailable":0,"totalPageDownloadTime":0}},"recvWaitTime":0.002925},"cache":{"chunk":{"entriesFound":0,"entriesRequested":0,"entriesStored":0,"bytesReceived":0,"bytesSent":0,"requests":0,"downloadTime":0,"queryLengthServed":0},"index":{"entriesFound":0,"entriesRequested":0,"entriesStored":0,"bytesReceived":0,"bytesSent":0,"requests":0,"downloadTime":0,"queryLengthServed":0},"result":{"entriesFound":0,"entriesRequested":0,"entriesStored":0,"bytesReceived":0,"bytesSent":0,"requests":0,"downloadTime":0,"queryLengthServed":0},"statsResult":{"entriesFound":0,"entriesRequested":0,"entriesStored":0,"bytesReceived":0,"bytesSent":0,"requests":0,"downloadTime":0,"queryLengthServed":0},"volumeResult":{"entriesFound":0,"entriesRequested":0,"entriesStored":0,"bytesReceived":0,"bytesSent":0,"requests":0,"downloadTime":0,"queryLengthServed":0},"seriesResult":{"entriesFound":0,"entriesRequested":0,"entriesStored":0,"bytesReceived":0,"bytesSent":0,"requests":0,"downloadTime":0,"queryLengthServed":0},"labelResult":{"entriesFound":0,"entriesRequested":0,"entriesStored":0,"bytesReceived":0,"bytesSent":0,"requests":0,"downloadTime":0,"queryLengthServed":0},"instantMetricResult":{"entriesFound":0,"entriesRequested":0,"entriesStored":0,"bytesReceived":0,"bytesSent":0,"requests":0,"downloadTime":0,"queryLengthServed":0}},"index":{"totalChunks":0,"postFilterChunks":0,"shardsDuration":0,"usedBloomFilters":false,"totalStreams":0,"chunkRefsLookupTime":0.019935,"bloomFilterTime":0}}}} + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Tue, 19 May 2026 12:00:34 GMT + Via: + - 1.1 Caddy + status: 200 OK + code: 200 + duration: 198.948428ms + - id: 28 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/cockpit/v1/regions/fr-par/tokens/4eec016e-ac85-471b-993c-eb09cba79a0d + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 0 + body: "" + headers: + Content-Type: + - application/json + Date: + - Tue, 19 May 2026 12:00:34 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + X-Request-Id: + - 8a8c725e-39be-4daf-afce-2c0a1d6e58f3 + status: 204 No Content + code: 204 + duration: 59.502171ms + - id: 29 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + host: api.scaleway.com + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.26.0; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/containers/v1/regions/fr-par/namespaces/db49186b-2bc9-43a5-a381-b1cc35f4f354 + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + content_length: 398 + body: '{"id":"db49186b-2bc9-43a5-a381-b1cc35f4f354","name":"cli-ns-dazzling-bartik","organization_id":"fa1e3217-dc80-42ac-85c3-3f034b78b552","project_id":"fa1e3217-dc80-42ac-85c3-3f034b78b552","description":"","status":"deleting","environment_variables":{},"secret_environment_variables":{},"tags":[],"created_at":"2026-05-19T11:55:15.086506Z","updated_at":"2026-05-19T12:00:34.802325Z","region":"fr-par"}' + headers: + Content-Length: + - "398" + Content-Type: + - application/json + Date: + - Tue, 19 May 2026 12:00:34 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge03) + X-Request-Id: + - 5faf9e5f-4fd9-4310-a212-656df56391fe + status: 200 OK + code: 200 + duration: 92.30759ms diff --git a/internal/namespaces/container/v1/testdata/test-container-logs-simple.golden b/internal/namespaces/container/v1/testdata/test-container-logs-simple.golden new file mode 100644 index 0000000000..e1b6a723c6 --- /dev/null +++ b/internal/namespaces/container/v1/testdata/test-container-logs-simple.golden @@ -0,0 +1,606 @@ +🎲🎲🎲 EXIT CODE: 0 🎲🎲🎲 +🟩🟩🟩 STDOUT️ 🟩🟩🟩️ +TIMESTAMP RESOURCE INSTANCE MESSAGE +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 - +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 https://docs.docker.com/get-started/ +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 For more examples and ideas, visit: +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 - +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 https://hub.docker.com/ +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 Share images, automate workflows, and more with a free Docker ID: +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 - +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 $ docker run -it ubuntu bash +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 To try something more ambitious, you can run an Ubuntu container with: +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 - +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 to your terminal. +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 4. The Docker daemon streamed that output to the Docker client, which sent it +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 executable that produces the output you are currently reading. +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 3. The Docker daemon created a new container from that image which runs the +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 (amd64) +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 1. The Docker client contacted the Docker daemon. +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 To generate this message, Docker took the following steps: +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 - +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 This message shows that your installation appears to be working correctly. +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 Hello from Docker! +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 - +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 - +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 https://docs.docker.com/get-started/ +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 For more examples and ideas, visit: +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 - +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 https://hub.docker.com/ +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 Share images, automate workflows, and more with a free Docker ID: +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 - +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 $ docker run -it ubuntu bash +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 To try something more ambitious, you can run an Ubuntu container with: +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 - +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 to your terminal. +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 4. The Docker daemon streamed that output to the Docker client, which sent it +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 executable that produces the output you are currently reading. +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 3. The Docker daemon created a new container from that image which runs the +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 (amd64) +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 1. The Docker client contacted the Docker daemon. +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 To generate this message, Docker took the following steps: +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 - +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 This message shows that your installation appears to be working correctly. +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 Hello from Docker! +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 - +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 - +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 https://docs.docker.com/get-started/ +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 For more examples and ideas, visit: +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 - +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 https://hub.docker.com/ +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 Share images, automate workflows, and more with a free Docker ID: +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 - +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 $ docker run -it ubuntu bash +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 To try something more ambitious, you can run an Ubuntu container with: +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 - +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 to your terminal. +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 4. The Docker daemon streamed that output to the Docker client, which sent it +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 executable that produces the output you are currently reading. +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 3. The Docker daemon created a new container from that image which runs the +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 (amd64) +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 1. The Docker client contacted the Docker daemon. +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 To generate this message, Docker took the following steps: +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 - +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 This message shows that your installation appears to be working correctly. +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 Hello from Docker! +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 - +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 - +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 https://docs.docker.com/get-started/ +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 For more examples and ideas, visit: +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 - +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 https://hub.docker.com/ +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 Share images, automate workflows, and more with a free Docker ID: +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 - +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 $ docker run -it ubuntu bash +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 To try something more ambitious, you can run an Ubuntu container with: +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 - +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 to your terminal. +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 4. The Docker daemon streamed that output to the Docker client, which sent it +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 executable that produces the output you are currently reading. +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 3. The Docker daemon created a new container from that image which runs the +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 (amd64) +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 1. The Docker client contacted the Docker daemon. +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 To generate this message, Docker took the following steps: +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 - +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 This message shows that your installation appears to be working correctly. +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 Hello from Docker! +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 - +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 - +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 https://docs.docker.com/get-started/ +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 For more examples and ideas, visit: +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 - +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 https://hub.docker.com/ +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 Share images, automate workflows, and more with a free Docker ID: +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 - +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 $ docker run -it ubuntu bash +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 To try something more ambitious, you can run an Ubuntu container with: +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 - +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 to your terminal. +few seconds ago clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48 4. The Docker daemon streamed that output to the Docker client, which sent it +🟩🟩🟩 JSON STDOUT 🟩🟩🟩 +[ + { + "timestamp": "2026-05-19T13:58:32.736494524+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "" + }, + { + "timestamp": "2026-05-19T13:58:32.736492771+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " https://docs.docker.com/get-started/" + }, + { + "timestamp": "2026-05-19T13:58:32.736490858+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "For more examples and ideas, visit:" + }, + { + "timestamp": "2026-05-19T13:58:32.736488243+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "" + }, + { + "timestamp": "2026-05-19T13:58:32.736486489+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " https://hub.docker.com/" + }, + { + "timestamp": "2026-05-19T13:58:32.736484536+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "Share images, automate workflows, and more with a free Docker ID:" + }, + { + "timestamp": "2026-05-19T13:58:32.736482111+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "" + }, + { + "timestamp": "2026-05-19T13:58:32.736480338+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " $ docker run -it ubuntu bash" + }, + { + "timestamp": "2026-05-19T13:58:32.736477803+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "To try something more ambitious, you can run an Ubuntu container with:" + }, + { + "timestamp": "2026-05-19T13:58:32.73647592+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "" + }, + { + "timestamp": "2026-05-19T13:58:32.736474066+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " to your terminal." + }, + { + "timestamp": "2026-05-19T13:58:32.736470139+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " 4. The Docker daemon streamed that output to the Docker client, which sent it" + }, + { + "timestamp": "2026-05-19T13:58:32.736467293+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " executable that produces the output you are currently reading." + }, + { + "timestamp": "2026-05-19T13:58:32.736453127+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " 3. The Docker daemon created a new container from that image which runs the" + }, + { + "timestamp": "2026-05-19T13:58:32.736451203+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " (amd64)" + }, + { + "timestamp": "2026-05-19T13:58:32.73644927+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " 2. The Docker daemon pulled the \"hello-world\" image from the Docker Hub." + }, + { + "timestamp": "2026-05-19T13:58:32.736447336+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " 1. The Docker client contacted the Docker daemon." + }, + { + "timestamp": "2026-05-19T13:58:32.736445442+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "To generate this message, Docker took the following steps:" + }, + { + "timestamp": "2026-05-19T13:58:32.736443459+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "" + }, + { + "timestamp": "2026-05-19T13:58:32.736440193+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "This message shows that your installation appears to be working correctly." + }, + { + "timestamp": "2026-05-19T13:58:32.736436195+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "Hello from Docker!" + }, + { + "timestamp": "2026-05-19T13:58:32.736388044+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "" + }, + { + "timestamp": "2026-05-19T13:57:11.728617236+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "" + }, + { + "timestamp": "2026-05-19T13:57:11.728615493+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " https://docs.docker.com/get-started/" + }, + { + "timestamp": "2026-05-19T13:57:11.728613579+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "For more examples and ideas, visit:" + }, + { + "timestamp": "2026-05-19T13:57:11.728611014+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "" + }, + { + "timestamp": "2026-05-19T13:57:11.728609301+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " https://hub.docker.com/" + }, + { + "timestamp": "2026-05-19T13:57:11.728607448+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "Share images, automate workflows, and more with a free Docker ID:" + }, + { + "timestamp": "2026-05-19T13:57:11.728605544+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "" + }, + { + "timestamp": "2026-05-19T13:57:11.728603781+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " $ docker run -it ubuntu bash" + }, + { + "timestamp": "2026-05-19T13:57:11.728601276+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "To try something more ambitious, you can run an Ubuntu container with:" + }, + { + "timestamp": "2026-05-19T13:57:11.728599383+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "" + }, + { + "timestamp": "2026-05-19T13:57:11.728597609+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " to your terminal." + }, + { + "timestamp": "2026-05-19T13:57:11.728595696+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " 4. The Docker daemon streamed that output to the Docker client, which sent it" + }, + { + "timestamp": "2026-05-19T13:57:11.728593852+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " executable that produces the output you are currently reading." + }, + { + "timestamp": "2026-05-19T13:57:11.728591568+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " 3. The Docker daemon created a new container from that image which runs the" + }, + { + "timestamp": "2026-05-19T13:57:11.728589674+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " (amd64)" + }, + { + "timestamp": "2026-05-19T13:57:11.728587711+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " 2. The Docker daemon pulled the \"hello-world\" image from the Docker Hub." + }, + { + "timestamp": "2026-05-19T13:57:11.728583222+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " 1. The Docker client contacted the Docker daemon." + }, + { + "timestamp": "2026-05-19T13:57:11.728581329+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "To generate this message, Docker took the following steps:" + }, + { + "timestamp": "2026-05-19T13:57:11.728578834+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "" + }, + { + "timestamp": "2026-05-19T13:57:11.728575748+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "This message shows that your installation appears to be working correctly." + }, + { + "timestamp": "2026-05-19T13:57:11.728572111+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "Hello from Docker!" + }, + { + "timestamp": "2026-05-19T13:57:11.728535352+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "" + }, + { + "timestamp": "2026-05-19T13:56:21.732090796+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "" + }, + { + "timestamp": "2026-05-19T13:56:21.732089033+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " https://docs.docker.com/get-started/" + }, + { + "timestamp": "2026-05-19T13:56:21.732087059+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "For more examples and ideas, visit:" + }, + { + "timestamp": "2026-05-19T13:56:21.732083362+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "" + }, + { + "timestamp": "2026-05-19T13:56:21.732081619+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " https://hub.docker.com/" + }, + { + "timestamp": "2026-05-19T13:56:21.732079806+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "Share images, automate workflows, and more with a free Docker ID:" + }, + { + "timestamp": "2026-05-19T13:56:21.732078012+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "" + }, + { + "timestamp": "2026-05-19T13:56:21.732076259+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " $ docker run -it ubuntu bash" + }, + { + "timestamp": "2026-05-19T13:56:21.732073163+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "To try something more ambitious, you can run an Ubuntu container with:" + }, + { + "timestamp": "2026-05-19T13:56:21.73207133+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "" + }, + { + "timestamp": "2026-05-19T13:56:21.732069596+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " to your terminal." + }, + { + "timestamp": "2026-05-19T13:56:21.732067753+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " 4. The Docker daemon streamed that output to the Docker client, which sent it" + }, + { + "timestamp": "2026-05-19T13:56:21.73206591+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " executable that produces the output you are currently reading." + }, + { + "timestamp": "2026-05-19T13:56:21.732064046+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " 3. The Docker daemon created a new container from that image which runs the" + }, + { + "timestamp": "2026-05-19T13:56:21.732062062+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " (amd64)" + }, + { + "timestamp": "2026-05-19T13:56:21.732060099+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " 2. The Docker daemon pulled the \"hello-world\" image from the Docker Hub." + }, + { + "timestamp": "2026-05-19T13:56:21.732058295+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " 1. The Docker client contacted the Docker daemon." + }, + { + "timestamp": "2026-05-19T13:56:21.732056412+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "To generate this message, Docker took the following steps:" + }, + { + "timestamp": "2026-05-19T13:56:21.732054428+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "" + }, + { + "timestamp": "2026-05-19T13:56:21.732050641+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "This message shows that your installation appears to be working correctly." + }, + { + "timestamp": "2026-05-19T13:56:21.732045892+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "Hello from Docker!" + }, + { + "timestamp": "2026-05-19T13:56:21.732002821+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "" + }, + { + "timestamp": "2026-05-19T13:55:50.745556393+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "" + }, + { + "timestamp": "2026-05-19T13:55:50.74555466+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " https://docs.docker.com/get-started/" + }, + { + "timestamp": "2026-05-19T13:55:50.745552756+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "For more examples and ideas, visit:" + }, + { + "timestamp": "2026-05-19T13:55:50.745550101+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "" + }, + { + "timestamp": "2026-05-19T13:55:50.745548368+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " https://hub.docker.com/" + }, + { + "timestamp": "2026-05-19T13:55:50.745546525+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "Share images, automate workflows, and more with a free Docker ID:" + }, + { + "timestamp": "2026-05-19T13:55:50.745544711+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "" + }, + { + "timestamp": "2026-05-19T13:55:50.745542978+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " $ docker run -it ubuntu bash" + }, + { + "timestamp": "2026-05-19T13:55:50.745540634+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "To try something more ambitious, you can run an Ubuntu container with:" + }, + { + "timestamp": "2026-05-19T13:55:50.74553879+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "" + }, + { + "timestamp": "2026-05-19T13:55:50.745537027+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " to your terminal." + }, + { + "timestamp": "2026-05-19T13:55:50.745535103+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " 4. The Docker daemon streamed that output to the Docker client, which sent it" + }, + { + "timestamp": "2026-05-19T13:55:50.74553326+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " executable that produces the output you are currently reading." + }, + { + "timestamp": "2026-05-19T13:55:50.745531386+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " 3. The Docker daemon created a new container from that image which runs the" + }, + { + "timestamp": "2026-05-19T13:55:50.745529453+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " (amd64)" + }, + { + "timestamp": "2026-05-19T13:55:50.745527549+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " 2. The Docker daemon pulled the \"hello-world\" image from the Docker Hub." + }, + { + "timestamp": "2026-05-19T13:55:50.745525335+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " 1. The Docker client contacted the Docker daemon." + }, + { + "timestamp": "2026-05-19T13:55:50.745523441+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "To generate this message, Docker took the following steps:" + }, + { + "timestamp": "2026-05-19T13:55:50.745521458+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "" + }, + { + "timestamp": "2026-05-19T13:55:50.745518482+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "This message shows that your installation appears to be working correctly." + }, + { + "timestamp": "2026-05-19T13:55:50.745514715+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "Hello from Docker!" + }, + { + "timestamp": "2026-05-19T13:55:50.745472706+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "" + }, + { + "timestamp": "2026-05-19T13:55:35.624964598+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "" + }, + { + "timestamp": "2026-05-19T13:55:35.624962384+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " https://docs.docker.com/get-started/" + }, + { + "timestamp": "2026-05-19T13:55:35.624959929+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "For more examples and ideas, visit:" + }, + { + "timestamp": "2026-05-19T13:55:35.624956523+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "" + }, + { + "timestamp": "2026-05-19T13:55:35.624954369+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " https://hub.docker.com/" + }, + { + "timestamp": "2026-05-19T13:55:35.624952015+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "Share images, automate workflows, and more with a free Docker ID:" + }, + { + "timestamp": "2026-05-19T13:55:35.62494936+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "" + }, + { + "timestamp": "2026-05-19T13:55:35.624946865+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " $ docker run -it ubuntu bash" + }, + { + "timestamp": "2026-05-19T13:55:35.624943358+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "To try something more ambitious, you can run an Ubuntu container with:" + }, + { + "timestamp": "2026-05-19T13:55:35.624940744+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": "" + }, + { + "timestamp": "2026-05-19T13:55:35.624938349+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " to your terminal." + }, + { + "timestamp": "2026-05-19T13:55:35.624935904+02:00", + "resource_instance": "clinsdazzlingbartikd2ee76fba40d38770096f1cdc746eec0c-deplop2z48", + "message": " 4. The Docker daemon streamed that output to the Docker client, which sent it" + } +]