Docker-compose和Xvfb不兼容?

由于我安装了Capybara-webkit,因此无法使用docker撰写我的规格。 下一个命令保持不变:

$ docker-compose run web xvfb-run -a bundle exec rspec 

我以为自己在Capybara-webkit上遇到 了问题 ,所以我在回购上创build了一个SO问题和一个问题 ,但是它似乎更像是docker-compose和xvfb之间的交互。

如果我先做

 $ docker-compose run web bash 

然后

 $ xvfb-run -a bundle exec rspec spec 

它工作正常。 我没有任何线索。

编辑31/08/17

根据要求,这里是docker组成文件:

 version: '2' services: db: image: mysql environment: - MYSQL_ROOT_PASSWORD=XXXXX volumes: - mysql-data:/var/lib/mysql redis: image: redis ports: - "6379:6379" volumes: - redis:/data web: build: . command: bundle exec rails s -p 3000 -b '0.0.0.0' volumes: - .:/app_dir - app-gems:/usr/local/bundle ports: - "3000:3000" depends_on: - db - redis volumes: mysql-data: driver: local redis: driver: local app-gems: driver: local 

和Dockerfile:

 FROM ruby:2.4.1 RUN apt-get update -qq && apt-get install -y \ build-essential \ libpq-dev \ nodejs \ xvfb \ qt5-default \ libqt5webkit5-dev \ gstreamer1.0-plugins-base \ gstreamer1.0-tools \ gstreamer1.0-x RUN mkdir /app_dir WORKDIR /app_dir ADD Gemfile* /app_dir/ RUN bundle install COPY . . 

发表评论作为答案,因为我需要格式

你可以尝试改变下面

 command: bundle exec rails s -p 3000 -b '0.0.0.0' 

 entrypoint: xvfb-run -a bundle exec rspec 

并尝试docker-compose up

此外,如果这不起作用,然后尝试添加tty: true的服务

在docker-compose.yml中

 command: ./start.sh 

并在start.sh文件中

 #!/bin/bash xvfb-run "run whatever"