Fórumok
Üdv!
Egy D10-et tesztelgetek. Lokálisan megy is: Fc37 (selinux disabled).
Gondoltam felteszem egy docker konténerbe is:
FROM fedora:latest
RUN dnf -y update
RUN dnf -y install php php-pdo php-dom php-gd memcached php-pecl-memcache sqlite
RUN curl -1sLf 'https://dl.cloudsmith.io/public/symfony/stable/setup.rpm.sh' | sudo -E bash
RUN dnf -y install symfony-cli
# VOLUME
VOLUME /drupal
# Expose port(s)
EXPOSE 8000
# WORK
WORKDIR /drupal
# ez még teszt: /bin/bash
ENTRYPOINT ........
A docker build --tag ...... megvan.
A helyi fájlokat felmountol-om a konténerbe futtatáskor:
docker run --rm -it -p 8000:8000 --name ... --hostname ... -v ....:/drupal localhost/image:dev
Ekkor futtatva hibát kapok a böngészőben, pedig van írási joga a fájlokra:
# symfony server:start
...
[Web Server ] Apr 18 23:40:18 |DEBUG | PHP Reloading PHP versions
[Web Server ] Apr 18 23:40:18 |DEBUG | PHP Using PHP version 8.1.17 (from default version in $PATH)
[Web Server ] Apr 18 23:40:18 |INFO | PHP listening path="/usr/sbin/php-fpm" php="8.1.17" port=39901
[PHP-FPM ] Apr 18 23:40:18 |NOTICE | FPM fpm is running, pid 36
[PHP-FPM ] Apr 18 23:40:18 |NOTICE | FPM ready to handle connections
[PHP-FPM ] Apr 18 23:40:18 |NOTICE | FPM systemd monitor interval set to 10000ms
[Web Server ] Apr 18 23:40:25 |ERROR | SERVER issue with server callback error="unable to fetch the response from the backend: malformed MIME header line: #1 /drupal/web/core/lib/Drupal/Core/Database/Database.php(445): Drupal\\sqlite\\Driver\\Database\\sqlite\\Connection::open()"
[Web Server ] Apr 18 23:40:25 |ERROR | SERVER GET (502) / ip="172.17.0.1"
[PHP-FPM ] NOTICE: PHP message: PDOException: SQLSTATE[HY000]: General error: 8 attempt to write a readonly database in /drupal/web/core/lib/Drupal/Component/DependencyInjection/PhpArrayContainer.php on line 79 #0 /drupal/web/core/modules/sqlite/src/Driver/Database/sqlite/Connection.php(159): PDO->exec()
[PHP-FPM ] #1 /drupal/web/core/lib/Drupal/Core/Database/Database.php(445): Drupal\sqlite\Driver\Database\sqlite\Connection::open()
...
Mit hagyok ki? (SQLite db: sites/default/files/.sqlite)
Hozzászólások
Mármint kinek? :) Én ilyenkor azt szoktam, hogy docker exec konténernév bash paranccsal belépek, és megnézem úgy, hogy adott könyvtárra/fájlra (itt pl. ls -la /drupal/web/sites/default/files/) pontosan milyen jogosultságot lát a konténer (itt a www-data user szempontjából).
A többi lépés nekem jónak tűnik.
Amúgy ha csak a Drupalt akarod próbálgatni (függetlenül attól, hogy milyen disztró van alatta), akkor érdemes lehet inkább a hivatalos image-ek közül használni valamelyiket. Azokban minden fontos függőség be van lőve az adott Drupal-verzióhoz, max. saját Dockerfile-ban finomhangolod, ha kell valami plusz php extension. Annyi, hogy azoknál a /opt/drupal könyvtárba bind mountolod a host könyvtáradat. (Nyilván ez a jogosultságokon nem segít, de legalább a függőségekkel nem kell szórakozni, és így biztosan nem függőségi probléma miatt jönnek a hibák.)
pontosan ezt csináltam. :) ezért írtam, hogy írási joga van.
(saját image-t szeretnék létrehozni :) )
Kipróbáltam gyorsan az általad megadott Dockerfile-lal: nekem megy rendesen, települ, ahogy kell, létrejön az adatbázisfájl is.
Szerintem túl sok mindent nem tudtam másként csinálni, mint te, csak a jogosultságok kiosztását (sudo chmod -R go+w web/sites/default szokott lenni nálam ilyen teszteknél dev. gépen). :)
Én a hosztgépen kipróbált rendszert mountoltam fel:
Lehet, hogy nem így kellett volna... :o
Este megnézem, nem vagyok a gép előtt.
köszi, mégis csak ez kellett a hoszt gépen: sudo chmod -R go+w web/sites/default
:o (pedig a .sqlite DB fájl törölhető volt a konténerben)
Na, akkor megoldódott, szuper. :)
Megnéztem, a konténerben a symfony cli a php-fpm-et az apache userrel (uid=48) futtatja (a shellt meg alapértelmezetten rootként adja a docker):
Ha install után megnézed a .sqlite fájlt a host rendszerben, annak is a 48-as uid-val rendelkező user lesz a tulajdonosa (akár van ilyen felhasználó a hoston, akár nincs, nálam pl. nincs, úgyhogy az ls is csak számmal listázza).
Javaslatom: https://ddev.readthedocs.io/en/stable/users/install/ddev-installation/
És akkor koncentrálhatsz a Drupal 10 kipróbálására.
Ez is Docker, csak a macerás részleteket elrejti neked.
Offtopik, de:
Így nem jobb? :)
RUN dnf -y update && RUN dnf -y install ... && curl ... && RUN dnf -y install symfony-cli && dnf clean all
de, jogos. :)
Ha fedora a host OS-ed is, és a `/docker`-t nem tudod írni a konténerben, akkor én egy `-v ....:/drupal:Z`-t (`:Z` !) néznák meg elsőnek. Ne kérdezd.