Назад | Перейти на главную страницу

Стакан с докером и образом ubuntu-upstart не запускает контейнер

Я пытаюсь заставить Beaker интегрироваться с Dockerfile с поддержкой Upstart. Это мой текущий набор узлов:

HOSTS:
    ubuntu-server:
        roles:
         - master
        platform: ubuntu-14.04-x64
        image: ubuntu-upstart:14.04
        hypervisor: docker
        docker_cmd: '/sbin/init'
        docker_preserve_image: true
        docker_image_commands:
         - wget --no-check-certificate https://apt.puppetlabs.com/puppetlabs-release-trusty.deb
         - apt-get install -y wget ca-certificates
         - dpkg -i puppetlabs-release-trusty.deb
         - apt-get update
         - apt-get -y install puppet curl ntpdate git ruby
         - "sed --in-place=.bak 's/without-password/yes/' /etc/ssh/sshd_config"

CONFIG:
  log_level: verbose
  type: foss

Проблема в том, что этот контейнер никогда не запускается, как видит docker ps. Beaker также сообщает:

узел доступен как ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no root@0.0.0.0 -p 49204

ubuntu-server 13:40:43$  dpkg -s curl  
Warning: Try 1 -- Host 0.0.0.0 unreachable: connection closed by remote host
Warning: Trying again in 1 seconds
Warning: Try 2 -- Host 0.0.0.0 unreachable: Connection refused - connect(2) for "0.0.0.0" port 49204
Warning: Trying again in 1 seconds
Warning: Try 3 -- Host 0.0.0.0 unreachable: Connection refused - connect(2) for "0.0.0.0" port 49204
Warning: Trying again in 2 seconds

Если я заменю docker_cmd с участием:

docker_cmd: /usr/sbin/sshd -D

Тогда он работает, но без Upstart (который, в свою очередь, ломает тесты).

Я могу сделать: docker ps -a который показывает некоторые закрытые контейнеры с помощью команды: /bin/sh -c /sbin/init

Как я могу заставить мензурку чтить docker_cmd и не бегать /sbin/init под /bin/sh?

Я исправил эту проблему, заменив

docker_cmd: '/sbin/init'

с участием

docker_cmd: ['/sbin/init']

в вашем Gemfile используйте это:

gem 'beaker', github: 'puppetlabs/beaker', branch: 'master'

Они исправили проблему.