Skip to content
This repository has been archived by the owner on May 25, 2022. It is now read-only.

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

Closed
omansour opened this issue Jun 26, 2014 · 13 comments
Closed

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

omansour opened this issue Jun 26, 2014 · 13 comments

Comments

@omansour
Copy link
Contributor

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
Copy link
Member

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

@omansour
Copy link
Contributor Author

$ 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
Copy link
Member

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
Copy link
Contributor Author

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
#11 (comment).

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

@joelwurtz
Copy link
Member

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
Copy link
Contributor

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
Copy link
Member

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 🍻

@joelwurtz
Copy link
Member

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
Copy link
Contributor Author

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

@cordoval
Copy link
Contributor

😊 oke thanks for switching to english

@jubianchi
Copy link
Contributor

@joelwurtz everything works fine now! Thanks for your pathc 🍺

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

  • We got 500s when trying to run jolici.
  • To debug builds, one can go into the build directory in sys_get_temp_dir()/jolici-builds/uniqid()/$build and run a docker build to see if everything works.
  • The problem was that the source code is copied using the tar command from /bin. It turns out that the tar command could be somewhere else.

With the last patches everything is OK :)

@joelwurtz
Copy link
Member

Thanks for the sum up @jubianchi !

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

@omansour
Copy link
Contributor Author

it's just work

thanks to you :)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants