Pepita73 / webproghu_dev

Webprog.hu apache-php7.2, Drupal 8.5.5
1 stars 1 forks source link

A docker-compose up nem megy win7-en #40

Open ghost opened 5 years ago

ghost commented 5 years ago

Nekem nem akar működni win7-en a docker-compose up.

$ docker-compose up
Traceback (most recent call last):
  File "docker-compose", line 3, in <module>
  File "compose\cli\main.py", line 68, in main
  File "compose\cli\main.py", line 118, in perform_command
  File "compose\cli\main.py", line 928, in up
  File "compose\project.py", line 414, in up
  File "compose\project.py", line 640, in warn_for_swarm_mode
  File "site-packages\docker\api\daemon.py", line 90, in info
  File "site-packages\docker\utils\decorators.py", line 46, in inner
  File "site-packages\docker\api\client.py", line 189, in _get
  File "site-packages\requests\sessions.py", line 488, in get
  File "site-packages\requests\sessions.py", line 475, in request
  File "site-packages\requests\sessions.py", line 596, in send
  File "site-packages\requests\adapters.py", line 423, in send
  File "site-packages\requests\packages\urllib3\connectionpool.py", line 595, in urlopen
  File "site-packages\requests\packages\urllib3\connectionpool.py", line 363, in _make_request
  File "httplib.py", line 1042, in request
  File "httplib.py", line 1082, in _send_request
  File "httplib.py", line 1038, in endheaders
  File "httplib.py", line 882, in _send_output
  File "httplib.py", line 844, in send
  File "site-packages\docker\transport\npipeconn.py", line 31, in connect
  File "site-packages\docker\transport\npipesocket.py", line 22, in wrapped
  File "site-packages\docker\transport\npipesocket.py", line 50, in connect
pywintypes.error: (2, 'WaitNamedPipe', 'A rendszer nem tal\xe1lja a megadott f\xe1jlt.')
Failed to execute script docker-compose
ghost commented 5 years ago

Ránézésre nem azzal van a gond, hogy szóköz van az elérési útban, mert egy jó darabig megtalálja a fájlokat. Megpróbálok utánakeresni ennek a hibának.

ghost commented 5 years ago

Ok. A gond azzal volt, hogy git bash-t használtam, nem docker terminal-t. Viszont így is hibaüzit dob, ha lefutott.

inf3rno@inf3rno-PC MINGW64 /e/creation/software developer/projects/webproghu_dev (master)
$ docker-compose up
Building drupal
Step 1/10 : FROM php:7.2-apache
 ---> a7d68dad7584
Step 2/10 : RUN set -ex;                if command -v a2enmod; then             a2enmod rewrite;     fi;                savedAptMark="$(apt-mark showmanual)";          apt-get update;         apt-get
install -y --no-install-recommends              libjpeg-dev             libpng-dev              libpq-dev       ;               docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr;
docker-php-ext-install -j "$(nproc)"            gd              opcache                 pdo_mysql       pdo_pgsql               zip     ;               apt-mark auto '.*' > /dev/null;         apt-mark
 manual $savedAptMark;  ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so           | awk '/=>/ { print $3 }'               | sort -u               | xargs -r dpkg-query -S                | cut -d
: -f1           | sort -u               | xargs -rt apt-mark manual;            apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false;   rm -rf /var/lib/apt/lists/*
 ---> Using cache
 ---> 18cc7bfa8491
Step 3/10 : RUN {               echo 'opcache.memory_consumption=128';          echo 'opcache.interned_strings_buffer=8';               echo 'opcache.max_accelerated_files=4000';              echo 'op
cache.revalidate_freq=60';              echo 'opcache.fast_shutdown=1';                 echo 'opcache.enable_cli=1';    } > /usr/local/etc/php/conf.d/opcache-recommended.ini
 ---> Using cache
 ---> f92ec9ddd998
Step 4/10 : WORKDIR /var/www/html
 ---> Using cache
 ---> 915afe46952b
Step 5/10 : RUN apt-get update && apt-get install -y --no-install-recommends            git          mysql-client       &&      rm -rf /var/lib/apt/lists/*
 ---> Using cache
 ---> 97425f6635fc
Step 6/10 : RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" &&    php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f43234
03c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" &&         php composer-setup.php &
&       php -r "unlink('composer-setup.php');" &&       mv composer.phar /usr/local/bin/composer
 ---> Running in f9471a021706
Installer corrupt
Could not open input file: composer-setup.php
ERROR: Service 'drupal' failed to build: The command '/bin/sh -c php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" &&   php -r "if (hash_file('SHA384', 'composer-setup.php') ==
= '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } ec
ho PHP_EOL;" &&         php composer-setup.php &&       php -r "unlink('composer-setup.php');" &&   mv composer.phar /usr/local/bin/composer' returned a non-zero code: 1

inf3rno@inf3rno-PC MINGW64 /e/creation/software developer/projects/webproghu_dev (master)
$
ghost commented 5 years ago

No elvileg a composer-setup.php hash-e nem stimmel, azért dobja ezt a hibát.

ghost commented 5 years ago

Bár nem értek a docker-hez, de gondolom ez a sor a hibás: https://github.com/Pepita73/webproghu_dev/blob/master/apache/Dockerfile#L65

Ki kellene találni valami upgradet rá, vagy minden alkalommal, amikor frissítik a composert szívni fogunk vele.

ghost commented 5 years ago

Azt írják, hogy így lehet telepíteni automatikusan: https://getcomposer.org/doc/faqs/how-to-install-composer-programmatically.md, viszont ehhez wget kell. Gondolom valami unix alapú az apache image, lövésem sincs, dockerhubon nem látok módot rá, hogy belenézzek a dockerfile-ba. Inkább kipróbálom a fenti kódot, szerintem biztosan működik.

Pepita73 commented 5 years ago

@inf3rno wget van elvileg, használható.

ghost commented 5 years ago

Ok. Most elolvasom újra, hogy mit írtunk a branching model-ről, mert már totál elfelejtettem. Aztán átírom az automatikus változatra, meg küldök PR-t róla.

ghost commented 5 years ago

No úgy néz ki, hogy egy az egyben nem lehet berántani a wget-es bash scriptet a docker run-ba. Számítottam mondjuk valami ilyesmire. Nem akarok külön fájlt csinálni neki, mert csak bonyolítanám. Próbálkoztam egy ilyennel a PHP-s ellenőrzésen belül, hogy file_get_contents('https://composer.github.io/installer.sig'), de valamiért nem megy, corruptat ír ugyanúgy. Ha lerántom a fájlt, és bemásolom a hash-t, és arra ellenőrzök, akkor viszont rendben van. Bármi ötlet, hogy mi lehet a gond? Lehet, hogy úgy van beállítva a PHP, hogy nem tölthet le kívülről fájlt, esetleg le van tiltva a file_get_contents? Ha igen, akkor az segítene, ha ki tudnánk kapcsolni a beállítást a php.ini-ben ideiglenesen. A másik változat, hogy wget-el szedem le a signature-t, aztán átadom a PHP-nek paraméterként.

ghost commented 5 years ago

Nincs wget úgy tűnik. Legalábbis erre azt írja: php -r "if (hash_file('SHA384', 'composer-setup.php') === $argv[0]) { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" "$(wget -q -O - https://composer.github.io/installer.sig)" && \ hogy /bin/sh: 1: wget: not found

ghost commented 5 years ago

Na megvan a gond, az idióták sortörést raktak a fájl végére.

ghost commented 5 years ago

Toltam neki pull request-et, majd nézz rá! (Egész jól működik a dokumentáció, amit Endyl csinált. Nem nagyon kellett semmin agyalni branch készítésnél és publikálásnál.)

ghost commented 5 years ago

Ezt le is lehet zárni, ha átmegy a review-on.

Pepita73 commented 5 years ago

@inf3rno , bocsi, ránéztem PR-re, de ki is szeretném próbálni, utána zárnám.

Pepita73 commented 5 years ago

Ezt nem igazán értem:

A gond azzal volt, hogy git bash-t használtam, nem docker terminal-t.

Én is git bash-t használok, és eddig nem volt gondom vele. Igaz, mikor még win7-en használtam, akkor a Docker is jópár verzióval régebbi volt. Mivel win7 (tudtommal) nem frissül, Docker pedig igen, szerintem az is csoda, hogy műxik valamennyire :/. Szép fogás, hogy megtaláltad a composeres hibát, csak nem értem a flow-t win7-től idáig. :)

Akkor kell "kiszállni" git bash-ből, amikor a konténeren belül kell indítani vmi parancsot, de ezt is lehet akár bash scriptel is, win alatt PowerShell "docker exec ... stb" utasítással.

ghost commented 5 years ago

@Pepita73 A Docker-nek van külön Terminal-ja. Nekem a docker-compose csak abból működik, bash-ből nem. A másik hiba ettől tök független, az amiatt volt, mert kézzel frissülő hash ellenőrző kódot tettetek bele a dockerfile-ba az automatikus helyett. Irtam már a composer-es repo-ba is, hogy szar a hash érték, mert sortörés van a végén, erre az volt a reakció, hogy jó az, mert működik a példakódjukkal, és nem érdekli őket, hogy file_get_contents-el nem. Na nem véletlenül az a véleményem PHP-ről, mint ami. :D Mindegy, engem nem izgat, van workaroundunk rá. Amúgy docker-compose build, amivel tudod ellenőrizni, ha már egyszer up-oltad. Ja ennek a composer-esnek új issue-t kellett volna nyitni, de szerintem már elég késő volt tegnap, amikor csináltam, aztán nem figyeltem a formaságokra.

Pepita73 commented 5 years ago

@inf3rno , a külön terminalt nem is tudom, hogy honnan lehet elindítani. :-D A külön issue nekem nem fáj, ha látnátok mi megy mostanában nálunk ("hivatalos" munkában), azon csodálkoznátok, mit keresek én ott. :)

Asszem én épp a docker-compose build - al szoktam attribútummal (talán -f?) kényszeríteni a rebuild-et, szóval valószínű, hogy lenne mit (újat) tanuljak. Sajnos majd' egy éve csak szabadidőben látok Dockert, és abból meg nagyon kevés van..

ghost commented 5 years ago

@Pepita73 Én tegnap használtam életemben először, de nem tűnik annyira bonyolultnak.