因为我的链代码将在每个链码容器上执行,所以我想在每个链码容器中设置环境变量,以便我可以在链码中使用这个环境变量。
我没有创建链码容器的权限。它将在链码实例化时自动创建(每个对等点一个docker容器)。所以我不能控制在链码容器中设置环境变量。
我也认为更新和提交链码容器,但如果有更多的背书同行,那么这可能会花费不必要的延迟。所以根据我的理解,最好的方法是在创建容器时设置环境变量。
请告诉我如何解决上面的问题?
发布于 2018-02-13 04:34:09
您不希望设置环境变量。如果有某种类型的“配置”设置需要传递到链码中,那么应该将其作为参数传递给初始化函数,然后使用PutState保存该值,并根据需要使用GetState检索该值。
发布于 2018-02-13 07:10:19
docker run命令使用--env参数:$ docker run --help ... -e,--env list Set环境变量--env-在环境变量文件中读取的文件列表
使用-e、--env和--env-file标志在您正在运行的容器中设置简单(非数组)环境变量,或者覆盖您正在运行的镜像的Dockerfile文件中定义的变量。更多信息请访问here。
docker运行-e MYVAR1 --env MYVAR2=foo --env-file./env.list ubuntu bash
https://github.com/moby/moby/issues/8838
https://github.com/moby/moby/issues/7561
现在Docker一旦创建就不能更改容器的配置,通常这是可以的,因为创建一个新的容器很简单
https://stackoverflow.com/questions/48745643
复制相似问题