我正在尝试Lighbend's condutr,目前正在设置沙盒。我按照他们网站上给出的说明,但我在"配置Docker VM"步骤中面临以下错误-当我尝试做沙箱init时:
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上运行它。以下是未命名的输出:
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。
我不确定是什么原因造成的问题,但似乎有一些东西在指南中失踪。
当前sandbox init
命令需要安装docker-machine
。在Linux上,情况并非如此。而是使用本地docker-engine
。因此,这是一个错误,因此,sandbox init
命令目前在Linux上不受支持。公关https://github.com/typesafehub/conductr-cli/pull/139正在解决这个问题。一旦合并了PR, sandbox init
命令将在所有操作系统上得到支持。
然而,你不需要等到这个问题被修复。sandbox init
命令只检查你想要运行传导的虚拟机,在你的情况下是Ubuntu虚拟机,有足够的资源来启动传导。所有其他命令都在Linux上工作。我建议使用至少有4个cpu和4gb内存的虚拟机。单独的传导不需要那么多资源,所以它高度依赖于你想在传导上运行什么,以及你想在你的VM中运行多少传导实例。一个传导核心节点本身的最大堆被设置为256 MB内存,传导代理节点的最大堆被设置为128 MB内存。
资源示例
- 3个传导核心节点:768 MB
- 3个传导代理节点:384mb
- 传导总量:1152 MB
所以在4 GiB的情况下,你几乎有3 GiB的可用空间用于你想在传导上运行的服务,例如Lagom, Cassandra, Akka,其他Docker镜像