小编Log*_*son的帖子

无需离开全局范围的 Helm 范围

我需要遍历实例列表并为每个实例创建 1 个有状态集。但是,在范围内,我将自己限制在该循环的范围内。我需要访问我的 statefulset 中的一些全局值。

我已经通过将我需要的所有全局对象放在一个 env 变量中来解决它,但是......这看起来很hacky。

在仍然能够引用全局对象的同时循环遍历范围的正确方法是什么?

我的循环示例

{{- $values := .Values -}}
{{- $release := .Release -}}

{{- range .Values.nodes }}

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: {{ $release.Name }} <-- Global Scope
  labels:
    .
    .
    .    
        env:
          - name: IP_ADDRESS
            value: {{ .ip_address }} <-- From range scope
    .
    .
    .
{{- end }}
Run Code Online (Sandbox Code Playgroud)

值示例

# Global
image:
  repository: ..ecr.....

# Instances
nodes:

  - node1:
    name: node-1
    iP: 1.1.1.1
  - node2:
    name: node-2
    iP: …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-helm

10
推荐指数
3
解决办法
8861
查看次数

卷已经专门附加到一个节点,不能附加到另一个节点

我有一个非常简单的 Kubernetes pod。我想要一个有状态的集合并想要以下过程:

  1. 我想要一个 initcontainer 下载并将 tarball 从 s3 解压缩到安装到 initcontainer 的卷中
  2. 我想将该卷安装到我要使用的主容器中

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: app
  namespace: test
  labels:
    name: app
spec:
  serviceName: app
  replicas: 1
  selector:
    matchLabels:
      app: app
  template:
    metadata:
      labels:
        app: app
    spec:
      initContainers:
      - name: preparing
        image: alpine:3.8
        imagePullPolicy: IfNotPresent
        command:
          - "sh"
          - "-c"
          - |
            echo "Downloading data"
            wget https://s3.amazonaws.com/.........
            tar -xvzf xxxx-........ -C /root/
        volumeMounts:
        - name: node-volume
          mountPath: /root/data/

      containers:
      - name: main-container
        image: ecr.us-west-2.amazonaws.com/image/:latest
        imagePullPolicy: Always

        volumeMounts: …
Run Code Online (Sandbox Code Playgroud)

kubernetes kops statefulset

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

游乐场内的班级扩展

我的游乐场源文件夹中有一个 UIVIew 子类(它是一个公共类),我试图仅将此类的一部分作为扩展名放入我的主游乐场文件中。

当我在我的操场上声明以下内容时

public extension SortingAlgorithmView {

    public func typeTest() {
        print("dfasfndjasfasfdasfdasf test ")
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在我的子类中我调用 typeTest() 它告诉我没有名为 typeTest 的函数。

swift swift-playground

4
推荐指数
1
解决办法
2820
查看次数

CMD中的Docker ENV

我正在尝试执行以下操作:

  1. 将构建参数传递给我的docker build命令
  2. 将其作为环境变量存储在我的容器中
  3. 在我的CMD中使用它以在容器启动时启动。

以下是我的设置:

FROM ubuntu:xenial

ARG EXECUTABLE

ENV EXECUTABLE ${EXECUTABLE}


CMD ["/opt/foo/bin/${EXECUTABLE}", "-bar"]
Run Code Online (Sandbox Code Playgroud)

这是我建造集装箱的方式

    docker build --build-arg EXECUTABLE=$EXECUTABLE  -t test_image .
Run Code Online (Sandbox Code Playgroud)

这是我运行图像的方式

    docker run -d test_image
Run Code Online (Sandbox Code Playgroud)

当我运行容器时,它崩溃并告诉我

docker: Error response from daemon: OCI runtime create failed: 
container_linux.go:296: starting container process caused 
"exec: \"/opt/foo/bin/${EXECUTABLE}\": stat /opt/foo/bin/${EXECUTABLE}: 
no such file or directory": unknown.
Run Code Online (Sandbox Code Playgroud)

docker dockerfile

3
推荐指数
1
解决办法
2606
查看次数

NSFileManager在创建文件时失败

这是我保存图像的功能.

static func getDirectoryPath() -> String {
    let path = (NSSearchPathForDirectoriesInDomains(.picturesDirectory, .userDomainMask, true))[0]
    return path
}

static func savePhoto(with path: String, image: UIImage) {
    let fM = FileManager.default
    let path = getDirectoryPath() + path
    let data = UIImageJPEGRepresentation(image, 0.5)
    let success = fM.createFile(atPath: path, contents: data, attributes: nil)
    print("File creation was \(success)")
}
Run Code Online (Sandbox Code Playgroud)

然后我就这样称呼它

      let path = "/SpotCheck_\(spot.name)_Photo\(indx).jpg"
      PhotoManager.savePhoto(with: path, image: photo)
Run Code Online (Sandbox Code Playgroud)

当我调用create file时,每次都返回false并且不保存照片.

编辑:问题是第二行需要documentDirectory而不是picturesDirectory.如下所示:

    let path = (NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true))[0]
Run Code Online (Sandbox Code Playgroud)

nsfilemanager ios swift

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