NFT鏈遊專案系統開發模式方案丨NFT鏈遊DAPP合約系統開發技術講解

Tg_StPv888發表於2023-03-24

在 內部無法獲取容器名稱時,如何操作? 當建立容器時,我們可以透過記錄容器名稱與ID到 中。 在容器內部,透過 cat /proc/self/cgroup 獲取容器ID。

應用場景

在容器內部,想要獲取容器名稱,替換容器內某些檔案內的字串, 程式碼如下:

# -*-coding:utf-8-*-import osimport redis
def alter(file, new_str, old_str="abc_123abc"):
    """
    替換檔案中的字串    file:檔名    old_str:就字串    new_str:新字串    """
    file_data = ""
    with open(file, "r") as f:
        for line in f:
            if old_str in line:
                line = line.replace(old_str, new_str)
            file_data += line    with open(file, "w") as f:
        f.write(file_data)def get_container_name():
    db = redis.Redis(host="192.168.0.111", port=6380, decode_responses=False)
   
    # start: in container, run next code  -------------------------------------------------
    cmd = "cat /proc/self/cgroup"
    output = os.popen(cmd)
    rests = output.readlines()
    container_message= rests[-1]
    if not container_message:
        container_id = "abc"
    else:
        container_id =  container_message.strip().split("docker-")[-1][:12]
    # end. ----------------------------------------------------------------------------------
    container_name = None    if container_id != "abc":
        key_name = "nm_" + container_id
        container_name = db.hget("container_msg", key_name)
    if container_name:
        container_name = container_name.decode("utf-8")
    return container_name
def run():
    nginx_conf = "/etc/nginx/nginx.conf"
    galaxy_yml = "/galaxy-central/config/galaxy.yml"
    container_name = get_container_name()
    if container_name is not None:
        alter(nginx_conf, container_name)
        os.popen("nginx -s reload")
        # os.popen("cp /galaxy-central/config/galaxy.yml.sample /galaxy-central/config/galaxy.yml")
        alter(galaxy_yml, container_name)
        print("Replacement string 'abc_123abc' succeeded")
    else:
        print("Replacement string 'abc_123abc' failed")
        if __name__ == '__main__':
    run()


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70016646/viewspace-2941421/,如需轉載,請註明出處,否則將追究法律責任。

相關文章