gpt4 book ai didi

kubernetes - 需要运行将某些文件复制到安装路径的复制脚本[init-container]

转载 作者:行者123 更新时间:2023-12-02 12:04:47 26 4
gpt4 key购买 nike

我有tomcat作为docker镜像。
我有3个xmls /属性文件在 Tomcat 中引发 war
我需要写一个初始化容器

  • 有一个脚本[shell或python]
  • 创建一个卷并将其装入主容器
  • 将属性文件从本地系统复制到已挂载的文件
    卷。
  • 然后init-container在此之后完成应用程序容器的启动。

  • 例如:
    在本地,我有以下几点:
    /work-dir tree
    ├── bootstrap.properties
    ├── index.html
    ├── indexing_configuration.xml
    ├── repository.xml
    └── wrapper.sh

    初始化容器应运行脚本wrapper.sh复制这些
    文件放入应用容器上的已安装卷
    这是 /usr/share/jack-configs/

    最佳答案

    您必须创建一个卷并将其安装在两个容器上。在Init容器上,您运行脚本以将文件复制到已安装的卷。

    我建议您不要使用本地文件,而应使用Blob存储来复制文件,这将使其更加简单。

    This文档显示了如何做您想做的事。

    以下是一个示例YAML:

    apiVersion: v1
    kind: Pod
    metadata:
    name: init-demo
    spec:
    containers:
    - name: nginx
    image: nginx
    ports:
    - containerPort: 80
    volumeMounts:
    - name: workdir
    mountPath: /usr/share/nginx/html
    # These containers are run during pod initialization
    initContainers:
    - name: install
    image: busybox
    command:
    - wget
    - "-O"
    - "/work-dir/index.html"
    - http://kubernetes.io
    volumeMounts:
    - name: workdir
    mountPath: "/work-dir"
    dnsPolicy: Default
    volumes:
    - name: workdir
    emptyDir: {}

    要完成您想要的操作,您必须更改init容器中的 command来执行脚本,这一点我让您尝试。

    PS:如果您真的要从本地(节点)文件系统复制,则需要将另一个卷挂载到init容器,然后从一个卷复制到另一个

    关于kubernetes - 需要运行将某些文件复制到安装路径的复制脚本[init-container],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55373796/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com