Стакан с изображением Docker и 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
, Стакан также сообщает:
узел доступен как ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no [email protected] -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
?
2 ответа
Я исправил эту проблему, заменив
docker_cmd: '/sbin/init'
с
docker_cmd: ['/sbin/init']
В вашем Gemfile используйте это:
gem 'beaker', github: 'puppetlabs/beaker', branch: 'master'
Они исправили проблему.