在 Docker 容器中安装 Chef 服务器

10

我一直在尝试在 Docker 容器中安装 Chef-Server,但遇到了一些麻烦。我正在运行一个更新版本的 Ubuntu 12.04 虚拟机和最新版本的 Docker。我运行一个基本的 Docker Ubuntu 12.04 容器并安装 chef-server(11.0.12 版本),这一步进行得很顺利。问题出现在安装后所需的 'sudo chef-server-ctl reconfigure' 步骤上。设置在此处卡住:

  * link[/opt/chef-server/init/rabbitmq] action create (up to date)
  * link[/opt/chef-server/service/rabbitmq] action create (up to date)
  * **ruby_block[supervise_rabbitmq_sleep] action run**

而我得到了一个stacktrace输出

**SystemExit: ruby_block[supervise_rabbitmq_sleep] (chef-server::rabbitmq line 161) had an error: SystemExit: exit**
/opt/chef-server/embedded/cookbooks/runit/definitions/runit_service.rb:165:in `sleep'
/opt/chef-server/embedded/cookbooks/runit/definitions/runit_service.rb:165:in `block (3 levels) in from_file'

如果有人经历过这种情况并且有任何想法,我会非常感激。

谢谢!

2个回答

9

一旦容器启动,我该如何进行测试? - sudhishkr

2

我遇到了这个问题。增加共享内存可以解决它。使用选项--privileged运行容器,在启动chef服务器之前,运行命令:sysctl -w kernel.shmmax=1288490189(对我来说,1288490189字节即1.2GB就足够了)。

Mark O'Connor答案中建议的Docker镜像对我不起作用(无法启动数据库连接),我也尝试了cbuisson/chef-server(一直在无休止地重新配置),最终我自己找到了一个适合我的:xmik/chef-server-docker(使用Ubuntu 14.04)。


容器启动后,我该如何进行测试? - sudhishkr
据我所知,在Chef Server 11中,您必须通过其网站配置第一个用户,这使得测试变得困难。在Chef Server 12中,您可以使用chef-server-ctl user-create。我现在与berkshelf-api一起使用Chef Server 12,也许您会发现这个手动测试有帮助:berkshelf-api-docker/test/run.sh(它使用不同的docker镜像与chef server)。 - Ewa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接