当我在Jelastic上启动容器时,我想运行一个脚本/usr/sbin/run.sh,所以我做了以下操作:
然后我按照正常程序在Jelastic上添加容器,但它给出了以下错误(如果我不设置环境变量和RUN命令,一切都会好的):
{"导致" 99"源":" JEL""错误":" java.lang中。的NullPointerException"" PARAMS" {" extip":"假""会话":" 114x1d38909aa5d9848b418276a6ca653875" " actionkey":" changetopology; dbde54d07b423f0a770cf08727f19272; licds30"" fixedCloudlets":" 1"" ismaster&#34 ;: "假"" flexibleCloudlets":" 16"" APPID":" dbde54d07b423f0a770cf08727f19272""节点类型& #34;:"搬运工""显示名":" licds30 /宝琪:V3""元数据" {" dockerHubUser& #34;:" sdfs23fs"" dockerName":" licds30 /宝琪"" dockerRunArgs":" run.sh&# 34;," dockerHubUrl":" https://index.docker.io/"" dockerEnvVars" {" PATH":" / usr / sbin目录"}"层":" CP"" dockerTag":" V3"" dockerHubPassword&# 34;:" xxs23saddjd"}},"方法名":" ADDNODE(搬运工)"}
有人可以建议如何解决这个问题吗?
非常感谢!
学家
答案 0 :(得分:0)
据我所知,环境变量是一组动态命名值,可以影响运行进程在计算机上的行为方式。 https://en.wikipedia.org/wiki/Environment_variable
在Jelastic Docker中,环境变量用于指定目标目录/应用程序路径以及指定有关端口,主机,启用/禁用功能的特定/所需信息。
在您的情况下,正确的方案是设置环境变量 HOME = / usr / sbin ,因为HOME目录的默认位置是 / root 。
环境变量 PATH 包含以冒号分隔的目录列表,shell搜索名称中不包含斜杠的命令(带有斜杠的命令被解释为要执行的文件名,以及shell尝试直接执行文件)换句话说,它确定主系统组件的位置。 (例如:当您执行命令 ping 系统实际上是运行位于 / bin / ping 的程序的二进制文件时)