小编Wil*_*ill的帖子

distroless 镜像中的无人和非 root 用户

Distroless 镜像有 3 个用户:

> docker run --rm --entrypoint cat gcr.io/distroless/nodejs:debug /etc/passwd
root:x:0:0:root:/root:/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/sbin/nologin
nonroot:x:65532:65532:nonroot:/home/nonroot:/sbin/nologin
Run Code Online (Sandbox Code Playgroud)

USER如果您在Dockerfile中没有说明的情况下运行映像,则映像将以uid=0(root) gid=0(root)运行。

我想避免这种情况并使用非特权用户。

除了没有人没有目录之外,在我的 Dockerfile 中使用和/home之间有什么区别?USER nobodyUSER nonroot

linux privileges docker dockerfile distroless

8
推荐指数
1
解决办法
6831
查看次数

无法安装 docker 卷来运行 opentelemetry 映像

我尝试使用配置 yaml 文件作为参数运行 opentelemetry docker 映像:

docker run -v "./otel-collector-config.yaml":/otel-collector-config.yaml -p 4317:4317 otel/opentelemetry-collector:latest --config=otel-collector-config.yaml
Run Code Online (Sandbox Code Playgroud)

我不断收到此错误消息:

2021-10-01T08:21:05.384Z        info    service/collector.go:303        Starting otelcol...     {"Version": "0.35.0", "NumCPU": 12}
2021-10-01T08:21:05.384Z        info    service/collector.go:242        Loading configuration...
Error: cannot load configuration's parser: error loading config file "/etc/otel-collector-config.yaml": unable to read the file /etc/otel-collector-config.yaml: read /etc/otel-collector-config.yaml: is a directory
2021/10/01 08:21:05 application run finished with error: cannot load configuration's parser: error loading config file "/etc/otel-collector-config.yaml": unable to read the file /etc/otel-collector-config.yaml: read /etc/otel-collector-config.yaml: is a directory
Run Code Online (Sandbox Code Playgroud)

似乎应用程序无法读取卷中传递的文件,因为它似乎是目录,而不是文件。

有谁知道如何将此文件作为文件安装,或者引导我发现我做错了什么?

我已经尝试了所有可能的带/不 …

volume docker open-telemetry

6
推荐指数
1
解决办法
2040
查看次数

PHP中的水合物和构造函数

从SQL数据库实例化对象时,我读到我应该使用一个hydrate()函数来填充对象,而不是直接使用构造函数。

以下代码之间有区别吗?

与hydrate():

class User {

    // attributes ...

    public function __construct(array $data = array()) {
            if (!empty($data)) {
                $this->hydrate($data);
            }
    }
    public function hydrate(array $data) {
       foreach ($data as $key => $value) {
          // One gets the setter's name matching the attribute.
          $method = 'set'.ucfirst($key);

          // If the matching setter exists
          if (method_exists($this, $method)) {
             // One calls the setter.
             $this->$method($value);
          }
       }
    }
   // Getters/Setters and methods ...
}
Run Code Online (Sandbox Code Playgroud)

直接进入构造函数:

class User {

        // attributes ... …
Run Code Online (Sandbox Code Playgroud)

php constructor

5
推荐指数
1
解决办法
1847
查看次数

公共访问级别:Blob 与容器

在公共访问级别方面,ContainerBlob有什么区别 ?(见下图蓝色框)

根据微软的定义

容器组织一组 blob,类似于文件系统中的目录。存储帐户可以包含无限数量的容器,并且容器可以存储无限数量的 Blob。

但我不明白这与公共访问级别有什么关系。

在此输入图像描述

blob azure azure-blob-storage azure-storage-account

5
推荐指数
1
解决办法
6425
查看次数

使用 jq 对 JSON 中特定字段的值求平均值

我有以下 JSON 数据。

{
   "meta":{
      "earliest_ts":1601425980,
      "latest_ts":1601482740,
      "interval":"minutes",
      "level":"cluster",
      "entity_id":"xxxxx-xxxxx-xxxxx-xxxxx-xxxxx",
      "stat_labels":[
         "status_code_classes_per_workspace_total"
      ],
      "entity_type":"workspace",
      "start_ts":"1601425980"
   },
   "stats":{
      "cluster":{
         "1601431620":{
            "3xx":2,
            "4xx":87,
            "5xx":31,
            "2xx":352
         },
         "1601472780":{
            "3xx":14,
            "4xx":296,
            "5xx":2,
            "2xx":3811
         },
         "1601479140":{
            "3xx":17,
            "4xx":397,
            "5xx":19,
            "2xx":4399
         }
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

我尝试对所有字段求平均值"3xx"

使用jq,我设法获取每个集群的密钥:

echo $data | jq -r '.stats.cluster|keys' | while read key; do 
  echo $key
done
Run Code Online (Sandbox Code Playgroud)

输出 :

[
"1601431620",
"1601472780",
"1601479140"
]
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试更进一步时,我无法进一步从每个字段检索数据。我从中得到了一些启发。

下面的代码不起作用,但你明白了:

 # total var will be used to calculate the average …
Run Code Online (Sandbox Code Playgroud)

bash parsing json jq

2
推荐指数
1
解决办法
647
查看次数

docker-compose 是一个自我修复的编排器吗?

kubernetes中,如果 pod 由于某种原因出现故障,准入控制器将重新启动它。

我们称这种机制为自我修复。

我从未使用过docker-compose,但我想知道:它是一样的吗?

self-healing kubernetes docker-compose

2
推荐指数
1
解决办法
1852
查看次数

展平由 terraform 中的嵌套列表组成的对象

我尝试解析以下变量:

变量.tf

variable "rbac_roles" {
  type = object(
    {
      view = list(object({
        group_name = string,
        group_id = string,
        namespaces = list(string)
      })),
      edit = list(object({
        group_name = string,
        group_id = string,
        namespaces = list(string)
      })),
      admin = list(object({
        group_name = string,
        group_id = string,
        namespaces = list(string)
      }))            
    }
  )
}
Run Code Online (Sandbox Code Playgroud)

变量.tfvars

rbac_roles = {
  view = [
    {
      group_name = "group1",
      group_id   = "123",
      namespaces = ["default", "namespace1"]
    },
    {
      group_name = "group2",
      group_id   = "456",
      namespaces = ["namespace2"] …
Run Code Online (Sandbox Code Playgroud)

list object flatten kubernetes terraform

2
推荐指数
1
解决办法
1万
查看次数

从 Azure 门户创建用户委托密钥

我尝试从天蓝色门户创建用户委托密钥。

在此输入图像描述

无论我为自己分配什么权限,我都会遇到相同的错误消息

您无权授予读取访问权限。您仍然可以创建共享访问签名,但需要具有附加权限的 RBAC 角色,然后才能向签名收件人授予该级别的访问权限。了解有关用于访问 Blob 数据的 Azure 角色的详细信息

到目前为止,我分配了以下角色:

在此输入图像描述

错误消息中提供的链接表示我需要以下其中一项:

  • 贡献者
  • 存储帐户贡献者
  • 存储 Blob 数据贡献者
  • 存储 Blob 数据所有者
  • 存储 Blob 数据读取器
  • 存储 Blob 委托者

所以它应该有效,但事实并非如此。我缺少什么?

azure azure-blob-storage

2
推荐指数
1
解决办法
1136
查看次数

解析字符串| 文件名

我有这样的文件:

aaa-xxx-random1.xml
aaa-xxx-random2.xml
aaa-yyy-random3.xml
aaa-zzz-random4.xml
aaa-zzz-random5.xml

如何在PowerShell中解析它以获取变量中的第二个三元组?

预期产量:

xxx
xxx
yyy
zzz
zzz

在shell中将是:

for f in `ls`; do
  echo $f | cut -d "-" -f 2
done
Run Code Online (Sandbox Code Playgroud)

这样做的目的是创建一个由trigram命名的存档,并将同一系列中的所有XML文件移动到创建的存档中.

string powershell parsing file archive

0
推荐指数
1
解决办法
68
查看次数