Open ghost opened 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.
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)
$
No elvileg a composer-setup.php
hash-e nem stimmel, azért dobja ezt a hibát.
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.
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.
@inf3rno wget van elvileg, használható.
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.
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.
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
Na megvan a gond, az idióták sortörést raktak a fájl végére.
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.)
Ezt le is lehet zárni, ha átmegy a review-on.
@inf3rno , bocsi, ránéztem PR-re, de ki is szeretném próbálni, utána zárnám.
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.
@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.
@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..
@Pepita73 Én tegnap használtam életemben először, de nem tűnik annyira bonyolultnak.
Nekem nem akar működni win7-en a
docker-compose up
.