我正在尝试Lighbend的ConductR,目前仍在设置沙箱。我按照site上给出的说明进行了操作,但在“配置Docker VM”步骤中我遇到了以下错误 - 当我尝试执行沙箱初始化时:
shishir@shishir-VirtualBox:~/Lightbend$ sudo sandbox init
Warning: Docker has an insufficient no. of CPUs 1 - please increase to a minimum of 4 CPUs
Error: Encountered unexpected error.
Error: Reason: FileNotFoundError [Errno 2] No such file or directory: 'docker-machine'
Error: Further information of the error can be found in the error log file: /home/shishir/.conductr/errors.log
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/conductr_cli/main_handler.py", line 8, in run
result = callback()
File "/usr/local/lib/python3.5/dist-packages/conductr_cli/sandbox.py", line 6, in main_method
sandbox_main.run()
File "/usr/local/lib/python3.5/dist-packages/conductr_cli/sandbox_main.py", line 158, in run
args.func(args)
File "/usr/local/lib/python3.5/dist-packages/conductr_cli/sandbox_init.py", line 32, in init
if is_docker_machine_installed():
File "/usr/local/lib/python3.5/dist-packages/conductr_cli/sandbox_init.py", line 104, in is_docker_machine_installed
terminal.docker_machine_help()
File "/usr/local/lib/python3.5/dist-packages/conductr_cli/terminal.py", line 71, in docker_machine_help
return subprocess.check_output(cmd, universal_newlines=True).strip()
File "/usr/lib/python3.5/subprocess.py", line 626, in check_output
**kwargs).stdout
File "/usr/lib/python3.5/subprocess.py", line 693, in run
with Popen(*popenargs, **kwargs) as process:
File "/usr/lib/python3.5/subprocess.py", line 947, in __init__
restore_signals, start_new_session)
File "/usr/lib/python3.5/subprocess.py", line 1551, in _execute_child
raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: 'docker-machine'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/bin/sandbox", line 9, in <module>
load_entry_point('conductr-cli==0.39', 'console_scripts', 'sandbox')()
File "/usr/local/lib/python3.5/dist-packages/conductr_cli/sandbox.py", line 10, in run
main_handler.run(main_method)
File "/usr/local/lib/python3.5/dist-packages/conductr_cli/main_handler.py", line 31, in run
handler = logging.handlers.RotatingFileHandler(DEFAULT_ERROR_LOG_FILE, maxBytes=3000000, backupCount=1)
File "/usr/lib/python3.5/logging/handlers.py", line 150, in __init__
BaseRotatingHandler.__init__(self, filename, mode, encoding, delay)
File "/usr/lib/python3.5/logging/handlers.py", line 57, in __init__
logging.FileHandler.__init__(self, filename, mode, encoding, delay)
File "/usr/lib/python3.5/logging/__init__.py", line 1008, in __init__
StreamHandler.__init__(self, self._open())
File "/usr/lib/python3.5/logging/__init__.py", line 1037, in _open
return open(self.baseFilename, self.mode, encoding=self.encoding)
FileNotFoundError: [Errno 2] No such file or directory: '/home/shishir/.conductr/errors.log'
我正在尝试在Ubuntu Virtual Box上运行它。这是uname输出:
shishir@shishir-VirtualBox:~$ uname -a
Linux shishir-VirtualBox 4.4.0-45-generic #66-Ubuntu SMP Wed Oct 19 14:12:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
我按照说明安装了Docker和Python3。
我不确定是什么导致了这个问题,但似乎指南中缺少某些内容。任何帮助解决这个问题将不胜感激。
答案 0 :(得分:0)
sandbox init
命令当前希望安装docker-machine
。在Linux上,情况并非如此。相反,使用原生docker-engine
。所以这是一个错误,因此,Linux上目前不支持sandbox init
命令。 PR https://github.com/typesafehub/conductr-cli/pull/139正在解决这个问题。合并PR后,所有操作系统都将支持sandbox init
命令。
尽管如此,您无需等到此问题得到解决。 sandbox init
命令仅检查您要运行ConductR的VM(在您的情况下为Ubuntu Virtual Box)是否有足够的资源来启动ConductR。所有其他命令都在Linux上运行。我建议使用具有至少4个CPU和4 GiB内存的VM。单独的ConductR不需要这么多资源,因此它在很大程度上取决于您希望在ConductR上运行什么以及您希望在VM中运行多少个ConductR实例。 ConductR核心节点本身的最大堆数设置为256 MB内存,ConductR代理节点的最大堆数设置为128 MB内存。
资源示例
因此,对于具有4 GiB的VM,您几乎可以为要在ConductR上运行的服务提供3 GiB,例如: Lagom,Cassandra,Akka,其他Docker图像。