在做區塊鏈日誌模組時,如果容器執行,需要把日誌檔案對映到宿主機上以方便檢視。下面介紹一下我的實現方式。
配置檔案示例:
volumes:
-/var/run/:/host/var/run/
-./channel-artifacts:/var/hyperledger/configs
-./fabric_logs:/tmp/fabric_logs/
把容器中/tmp/fabric_logs目錄對映到宿主機當前目錄下的./fabric_logs目錄下。這兩個目錄會共享資料。
**中建立容器時新增:
func (vm *dockervm) createcontainer(ctxt context.context, client dockerclient,
imageid string, containerid string, args string,
env string, attachstdout bool) error )
var mounts docker.mount
var source string
var destination string
var fabriccfgpath = os.getenv("fabric_cfg_path")
var configname string
_, err := os.stat(fabriccfgpath)
if err == nil
if destination == ""
source = "/tmp/chaincode_logs/" + containerid
volumes[destination] = struct{}{}
mount := docker.mount
config := docker.config
hostconfig := getdockerhostconfig()
hostconfig.binds = string
copts := docker.createcontaineroptions
dockerlogger.debugf("create container: %s", containerid)
_, err = client.createcontainer(copts)
if err != nil
dockerlogger.debugf("created container: %s", imageid)
return
nil}
其中volumes,mounts, hostconfig.binds引數需要按照自己的對映關係去填寫。
這樣和通過:
1、docker-compose 配置檔案啟動
2、或者docker -v 引數命令列啟動
達到一樣效果。
檔案 標頭檔案 原始檔(C )
標頭檔案和原始檔中的函式宣告與定義 函式原型 file fsopen const char filename,const char mode,int shflag file wfsopen const wchar t filename,const wchar t mode,int shflag 注 ...
python 檔案遍歷 檔案讀取 檔案操作
一 檔案遍歷 import os filedir d os.sep data2 for root,dirs,files in os.walk filedir for dir in dirs print os.path.join root,dir for file in files print os....
python 檔案操作,讀檔案,寫檔案
讀取檔案的全部內容 def get f none try f open 致橡樹.txt r encoding utf 8 print f.read except filenotfounderror print 無法開啟指定的檔案 except lookuperror print 指定了未知的編碼 e...