老问题,但我留下一个注释,对于本地测试部署,我使用已安装的 NFS 网络文件系统和本地路径运行 OpenWhisk。为此,我只是简单地将挂载添加到源中(硬编码,接下来可以进行 ENV 设置):
在此处添加卷挂载 -v:文件:core/invoker/src/main/scala/whisk/core/containerpool/docker/DockerContainer.scala
val args = Seq(
"--cpu-shares",
cpuShares.toString,
"--memory",
s"${memory.toMB}m",
"--memory-swap",
s"${memory.toMB}m",
"--network",
network,
"-v",
"/mnt/nfs:/mnt/nfs",
"-v",
"/mnt/data:/mnt/data") ++
environmentArgs ++
dnsServers.flatMap(d => Seq("--dns", d)) ++
name.map(n => Seq("--name", n)).getOrElse(Seq.empty) ++
params
要构建它,然后在 openwhisk-master 目录中运行:
./gradlew distdocker
并标记生成的调用程序容器,以便在堆栈中使用它:
docker tag whisk/invoker openwhisk/invoker
重新启动后,您就有了卷。
但请注意:这与无状态微服务的设计原则相矛盾,可能不是最明智的方法。重新检查是否可以不安装卷(它们不是无状态的)。