Wpis z mikrobloga

#docker #wsl2 #linux
próbuje odpalić kontener komenda:

docker run -d --name apache --network siec --link bazamdb -v "$(pwd):/var/www/html" --sysctl net.ipv4.ipunprivilegedportstart=0 -u 1000:1000 -p 9000:80 php:8.1-apache-mysqli

gdzie php:8.1-apache-mysqli to po prostu obraz mysql z doinstalowanym mysqli

lecz za kazdym razem kontener jest niekatywny nie ma w nim zadnych logow jedynie
rm: cannot remove '/var/run/apache2/apache2.pid': Operation not permitted
ktos wie co tu zrobic?
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • 1
@Yakooo: na kazdym porcie to samo, druga sprawa jak mam sprawdzic te uprawnienia? nie mam lokalnie apache, jedynie obraz, gdzie moge to znalezc?
  • Odpowiedz
Uruchom: docker exec -it apache /bin/bash

A potem normalnie listujesz uprawnienia katalogu: ls -l /var/www/html
  • Odpowiedz
  • 0
@panDocent: działa.. ale odpalałem przez 1000 zeby pliki w katalogu /www nalezaly wlasnie do systemowego uzytkownika i zeby system mial do nich dostep, bo bez tego bede mial dostep tylko przez roota?
  • Odpowiedz
@tutu09: niekoniecznie. Musisz przeczytać jak działa ten Apache. W nginx uruchamiany jest chyba master jako root, a workerzy jako zwykli
  • Odpowiedz
Pamiętaj, że we fladze -u podajesz ID i grupę użytkownika, który ma odpalić ten kontener. User 1000 nie jest uprawniony, żeby odpalić wewnątrz czy to apacza czy php fpm, więc się wywala. Ten kontener - https://github.com/docker-library/php/blob/master/8.1/bullseye/apache/Dockerfile jest tak przemyślany, żeby działać jako ROOT.

Jak podasz mu usera 1000, to nic nie zrobisz. A tak to będąc rootem może odpalić co trzeba i tak skonfigurować procesy httpd i fpm, żeby to one zapisywały
  • Odpowiedz