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"