Zmieniłem
Kod
volumes:
- .:/var/www
- ./public:/var/www/html
na
Kod
volumes:
- .:/var/www
- ./docker/php/php-apache.conf:/etc/apache2/sites-enabled/000-default.conf
i dodałem
./docker/php/php-apache.confKod
<VirtualHost *:80>
ServerAdmin admin@domain.com
DocumentRoot "/var/www/public"
ServerName php-apache
</VirtualHost>
i wszystko działa dobrze.

PS Wzorowałem się na tym przykładzie:
https://www.zehntech.com/quick-guide-to-imp...in-just-10-min/DODANE 20.09.2022:Mam jeszcze małą wątpliwość. Gdy odpalam Docker'a, za każdym razem w katalogu projektu tworzy mi się pusty folder html. Zastanawiam się, czy nie poprawniej byłoby umieszczać wszystkie pliki strony nie w "/var/www", ale w "/var/www/html", jak jest w przykładzie z linka powyżej? Chyba że da się pozbyć tego folderu html w inny sposób...
DODANE 26.09.2022:Poczytałem trochę i wygląda mi na to, iż główne foldery aplikacji php powinny być kopiowane jako podkatalogi /var/www (np. /var/www/1sitename, /var/www/2sitename). Ponieważ w moim projekcie mam w kontenerze tylko jedną stronę, to umieściłem ją domyślnie w /var/www/html. Do tego zauważyłem, że folder html ma dostęp dla www-data:www-data. Dlatego zrobiłem małe zmiany w kodzie i trochę inaczej kopiuję pliki, aby wszystkie miały te same uprawnienia (777 i www-data)... Nie wiem, czy to jest dobra praktyka, aby zmieniać wszystko z root na www-data? Teraz przynajmniej nie muszę nic robić z "Wiersza polecenia" poza wystartowaniem Docker'a. Prosiłbym o wszelkie uwagi i wątpliwości odnośnie prawidłowości kodu.
./docker-compose.ymlKod
version: '3.9'
services:
php-apache-environment:
container_name: php-apache
build:
context: .
dockerfile: Dockerfile
depends_on:
- db
ports:
- '8000:80'
volumes:
- ./php-apache.conf:/etc/apache2/sites-enabled/000-default.conf
[...]
./DockerfileKod
FROM php:8.0-apache
COPY --chown=www-data:www-data --chmod=777 . /var/www/html
RUN a2enmod rewrite
RUN apt-get update && apt-get install -y apt-transport-https
RUN apt-get install -y libssh2-1-dev libssh2-1 \
&& pecl install ssh2-1.3.1 \
&& docker-php-ext-enable ssh2
RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli
RUN apt-get update && apt-get upgrade -y
./php-apache.confKod
<VirtualHost *:80>
ServerAdmin admin@domain.com
DocumentRoot "/var/www/html/public"
ServerName php-apache
</VirtualHost>
Przeniosłem pliki Dockerfile i php-apache.conf do katalogu głównego aplikacji, bo miałem problem, że kopiowało mi do html w kontenerze tylko zawartość folderu ./docker/php. Nie udało mi się wyjść z niego przy kopiowaniu w stylu ./../../ czy jakoś tak... Nie wiem, jak to zrobić pod Linux'em...

PS Musiałem dodać ponownie mapowanie "- .:/var/www/html" dla "volumes:" w pliku "docker-compose.yml". Bez tego zmiany w plikach nie są widoczne na bieżąco, a tylko stan z momentu kopiowania... Niestety dostęp powraca wtedy do root.