Depuis que j'ai installé Capybara-webkit, je ne peux pas lancer mes spécifications avec docker composer. Les prochains séjours de commande en attente:Incompatibilité Docker-composer et Xvfb?
$ docker-compose run web xvfb-run -a bundle exec rspec
Je pensais que j'ai un problème avec Capybara-webkit, donc je créé un SO question et an issue on the repo, mais il semble qu'il est plus un pb d'interaction entre docker-Compose et xvfb.
Si je fais d'abord
$ docker-compose run web bash
puis
$ xvfb-run -a bundle exec rspec spec
il fonctionne très bien. Je n'ai aucune idée.
Modifier 31/08/17
Comme demandé, voici le fichier docker-Compose:
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
Et le 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 . .
Joe Ferris, créateur de Capybara-webkit, m'a donné trois fils: - le shell par défaut - stdin - interactif vs shell non interactif invocations. – Ruff9
Avez-vous essayé ce 'docker-compose exécuter web/bin/bash -c" xvfb-run -un bundle exec rspec "'. Vous pouvez également essayer un autre et voir si cela fonctionne. Vous pouvez également essayer une autre version 'docker-composer exécuter web/bin/bash -c" exec xvfb-run -a bundle exec rspec " –
Les deux m'ont donné la même réponse:' ERREUR: Impossible de démarrer le service web: erreur d'exécution oci: container_linux.go: 262: démarrage du processus de conteneur causé "exec: \"/bin \ ": permission refusée" ' – Ruff9