jolicode / JoliCi

:white_check_mark: JoliCi - Run your TravisCi builds locally
MIT License
653 stars 46 forks source link

problème sur mon premier essai de JoliCi #tristesse #noob #11

Closed omansour closed 10 years ago

omansour commented 10 years ago

excusez ma noobitude mais je n'arrive pas à builder un projet avec un .travis.yml

j'ai bien pull les images jolicode/php54 etc ...

je me mange un

[GuzzleHttp\Exception\ServerException]                                                                             
  Server error response [url] /build?q=1&t=53ac2c0f75093-php-5.4&nocache=0&rm=0 [status code] 500 [reason phrase] Internal Server Error                                                                                               

dites moi si il faut plus de détails

joelwurtz commented 10 years ago

Quelle version de docker ? Tu peux jouer la commande en mode verbose aussi (-v) et me donner l'output ?

omansour commented 10 years ago
$ docker -v
Docker version 1.0.1, build 990021a
$ php -v
PHP 5.5.10 (cli) (built: Apr 22 2014 09:12:41)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
$ php jolici.phar -v run 
Creating builds...
3 builds created

Running build php-5.4

  [GuzzleHttp\Exception\ServerException]                                                                             
  Server error response [url] /build?q=0&t=53ac36595e5e2-php-5.4&nocache=0&rm=0 [status code] 500 [reason phrase] I  
  nternal Server Error                                                                                               

Exception trace:
 () at phar:///Users/oliviermansour/Sites/service-6play-api/jolici.phar/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:68
 GuzzleHttp\Exception\RequestException::create() at phar:///Users/oliviermansour/Sites/service-6play-api/jolici.phar/vendor/guzzlehttp/guzzle/src/Subscriber/HttpError.php:31
 GuzzleHttp\Subscriber\HttpError->onComplete() at phar:///Users/oliviermansour/Sites/service-6play-api/jolici.phar/vendor/guzzlehttp/guzzle/src/Event/Emitter.php:105
 GuzzleHttp\Event\Emitter->emit() at phar:///Users/oliviermansour/Sites/service-6play-api/jolici.phar/vendor/guzzlehttp/guzzle/src/Event/RequestEvents.php:75
 GuzzleHttp\Event\RequestEvents::emitComplete() at phar:///Users/oliviermansour/Sites/service-6play-api/jolici.phar/vendor/stage1/docker-php/src/Docker/Http/Adapter/DockerAdapter.php:55
 Docker\Http\Adapter\DockerAdapter->send() at phar:///Users/oliviermansour/Sites/service-6play-api/jolici.phar/vendor/guzzlehttp/guzzle/src/Client.php:182
 GuzzleHttp\Client->send() at phar:///Users/oliviermansour/Sites/service-6play-api/jolici.phar/vendor/guzzlehttp/guzzle/src/Client.php:170
 GuzzleHttp\Client->post() at phar:///Users/oliviermansour/Sites/service-6play-api/jolici.phar/vendor/stage1/docker-php/src/Docker/Docker.php:102
 Docker\Docker->build() at phar:///Users/oliviermansour/Sites/service-6play-api/jolici.phar/src/Joli/JoliCi/Executor.php:101
 Joli\JoliCi\Executor->runBuild() at phar:///Users/oliviermansour/Sites/service-6play-api/jolici.phar/src/Joli/JoliCi/Command/RunCommand.php:66
 Joli\JoliCi\Command\RunCommand->execute() at phar:///Users/oliviermansour/Sites/service-6play-api/jolici.phar/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:241
 Symfony\Component\Console\Command\Command->run() at phar:///Users/oliviermansour/Sites/service-6play-api/jolici.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:895
 Symfony\Component\Console\Application->doRunCommand() at phar:///Users/oliviermansour/Sites/service-6play-api/jolici.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:191
 Symfony\Component\Console\Application->doRun() at phar:///Users/oliviermansour/Sites/service-6play-api/jolici.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:121
 Symfony\Component\Console\Application->run() at phar:///Users/oliviermansour/Sites/service-6play-api/jolici.phar/bin/jolici:24
 require() at /Users/oliviermansour/Sites/service-6play-api/jolici.phar:6

run [-p|--project-path[="..."]] [--no-cache] [--timeout[="..."]] [--docker-host[="..."]] [cmd]
joelwurtz commented 10 years ago

Aucun problème pour lancer un container à la main sinon ?

docker run jolicode/php54 /bin/bash

Sinon pour aller plus loin, les builds sont mis dans des repertoires temporaires :

sys_get_temp_dir()/jolici-builds/uniqid()/$build

Si tu peux aller dans le dossier et faire un docker build à la main et me dire si tu as ce problème ce serait top. Je sais pas trop si c'est ma lib ou docker qui foire :/

omansour commented 10 years ago

ok

le docker build indique un pb dans mon before_script

c'est donc à priori ma faute. Je corrige et je te dis.

idéalement il faudrait un message plus clair mais maintenant je sais débogguer :)

Le 26 juin 2014 17:25, Joel Wurtz notifications@github.com a écrit :

Aucun problème pour lancer un container à la main sinon ?

docker run jolicode/php54 /bin/bash

Sinon pour aller plus loin, les builds sont mis dans des repertoires temporaires :

sys_get_temp_dir()/jolici-builds/uniqid()/$build

Si tu peux aller dans le dossier et faire un docker build à la main et me dire si tu as ce problème ce serait top. Je sais pas trop si c'est ma lib ou docker qui foire :/

— Reply to this email directly or view it on GitHub https://github.com/jolicode/JoliCi/issues/11#issuecomment-47240070.

Olivier Mansour http://oliviermansour.com/ http://fr.linkedin.com/in/omansour

joelwurtz commented 10 years ago

Hum, effectivement je vais essayer d'améliorer ces erreurs :

Si cela te dérange pas je veux bien la ligne qui foire dans ton before_script comme ca je reproduis et j'essaye de mettre un Joli affichage :)

Merci

jubianchi commented 10 years ago

Je suis bloqué avec la même erreur 500. J'ai lancé un docker build . dans le dossier de build (/tmp/.../php-5.4/) et je n'ai aucune erreur.

Les commandes de la section script de mon .travis.yml ne sont pas exécutées. Pour qu'elles soient lancées correctement, je dois modifier à la main le Dockerfile :

FROM jolicode/php54

RUN echo "#!/bin/bash\necho php" > /usr/local/bin/phpenv && chmod +x /usr/local/bin/phpenv
RUN mkdir -p $HOME/.phpenv/versions/php && ln -s /etc/php5 $HOME/.phpenv/versions/php/etc && ln -s /etc/php5/cli/php.ini /etc/php5/php.ini

ENV WORKDIR $HOME/project
ADD . $WORKDIR
WORKDIR ~/project

ENV TRAVIS_PHP_VERSION 5.4

    RUN /bin/bash -c -l "cd $WORKDIR && composer install"

    RUN /bin/bash -c -l "cd $WORKDIR && composer install --prefer-source"
    RUN /bin/bash -c -l "cd $WORKDIR && composer global require 'kherge/box=~2.4' --prefer-source"
    RUN /bin/bash -c -l "cd $WORKDIR && wget https://scrutinizer-ci.com/ocular.phar"

CMD /bin/bash -c -l "cd $WORKDIR && php vendor/atoum/atoum/scripts/coverage.php --format xml --output clover.xml && ~/.composer/vendor/bin/box build && vendor/bin/behat --format=progress"

Sur la dernière ligne, je dois remplacer CMD par RUN. Après avoir fait cette modification, je peux lancer le docker build . et tout semble OK. Par contre, lorsque j'essaye de lancer un run depuis le phar, j'ai toujours l'erreur 500...

Pour info, j'essaye de builder https://github.com/FriendsOfPHP/pickle

joelwurtz commented 10 years ago

Ok je pense avoir trouvé,

@jubianchi Pour la partie script c'est normal c'est uniquement executé lorsque le build a été géneré, le comportement est le suivant :

  1. Création d'une image docker avec toutes les commandes nécessaires : before_script, default env, etc ...
  2. Execution de l'image avec la partie script

En ce qui concerne l'erreur, le build est envoyé avec tous les fichiers pour pouvoir construire l'image, l'envoie de ces fichiers ce fait sous le format d'une archive tar. J'utilise la librairie docker-php qui part du principe que le binaire se trouve dans le dossier /bin/tar : https://github.com/stage1/docker-php/blob/master/src/Docker/Context/Context.php#L126

A mon avis tar ne doit pas ce trouver dans ce dossier dans vos cas, je vais modifier ce qu'il faut sur la lib pour que ce soit plus permissif au niveau de la location et faire une nouvelle release avec le bug corrigé.

En attendant vous pouvez essayer de me confirmer cela en vérifiant la location de tar puis de créer le lien symbolique necessaire pour voir si cela marche ?

Merci :beers:

joelwurtz commented 10 years ago

Vous pouvez essayer avec la dernière version et me dire si cela est bon ? https://github.com/jolicode/JoliCi/releases/download/v0.2.2/jolici.phar

Merci

omansour commented 10 years ago

@joelwurtz I will try to re run my use case this afternoon. I hope I will find some minutes for that ;)

cordoval commented 10 years ago

:blush: oke thanks for switching to english

jubianchi commented 10 years ago

@joelwurtz everything works fine now! Thanks for your pathc :beer:

@cordoval Sorry for speaking french here :) let m sum up what happened:

With the last patches everything is OK :)

joelwurtz commented 10 years ago

Thanks for the sum up @jubianchi !

This issue should be resolved, don't hesitate to reopen it @omansour if anything goes wrong :)

omansour commented 10 years ago

it's just work

thanks to you :)