docker4drupal + ubuntu. Как сейчас сделать чтобы сайты открывались без окончания :8000 ?

Главные вкладки

Аватар пользователя VasyOK VasyOK 6 июля 2023 в 1:29

Сейчас в последней версии D4D проекты в браузере открываются после с окончанием порта: drupal.docker.localhost:8000.

Как сделать, чтобы открывались без этого окончания, т.е.: drupal.docker.localhost ?

Пару лет назад в docker-compose.yml нужно было исправить:

ports:
   - '8000:80'

на

ports:
   - '80:80'

Потом это убрали и надо было в .env прописать:
PROJECT_PORT=8000
на
PROJECT_PORT=80

А сейчас как?

Если поставить PROJECT_PORT=80, то после docker-compose up -d пишет:

Error response from daemon: driver failed programming external connectivity on endpoint projectname_traefik (c7496510437064dca90a1cba2761d4054f4ac3ef47907e6952df30abd1eee4fa): Error starting userland proxy: listen tcp4 0.0.0.0:80: bind: address already in use

Лучший ответ

Аватар пользователя ant4 ant4 8 июля 2023 в 10:04

apache можно или удалить (если не используется) или убрать его из автозагрузки
sudo systemctl disable apache2

Комментарии

Аватар пользователя VasyOK VasyOK 6 июля 2023 в 23:01

Эта информация как-то поможет?

docker-compose up -d
 ⠴ Container projectname_traefik  Starting                                                                               5.5s
Error response from daemon: driver failed programming external connectivity on endpoint projectname_traefik (f806ec0fcc407b9832b3f3776063f2ac79ad7c212a2e5fd1db8bcede4f820ab1): Error starting userland proxy: listen tcp4 0.0.0.0:80: bind: address already in use
netstat -anp | grep ":80"
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp6       0      0 :::80                   :::*                    LISTEN      -    
sudo fuser 80/tcp
80/tcp:               1054  1058  1059  1060  1061  1062
sudo ss -lptn 'sport = :80'
State         Recv-Q        Send-Q                Local Address:Port                 Peer Address:Port        Process        
LISTEN        0             511                               *:80                              *:*            users:(("apache2",pid=1062,fd=4),("apache2",pid=1061,fd=4),("apache2",pid=1060,fd=4),("apache2",pid=1059,fd=4),("apache2",pid=1058,fd=4),("apache2",pid=1054,fd=4))
Аватар пользователя gun_dose gun_dose 7 июля 2023 в 7:57

Если крутится, значит надо остановить, он же порт занимает. А проверить можно через команду top - посмотреть все запущенные процессы

Аватар пользователя VasyOK VasyOK 7 июля 2023 в 13:05

Как остановить? Что у меня отпадет если остановить?
Выполнял:
sudo kill -9 $(sudo lsof -t -i:80)
и
fuser -k 80/tcp

Ошибка описанная выше остается.

Аватар пользователя ant4 ant4 7 июля 2023 в 15:10

Зачем так издеваться над системой?
Программу занимающую 80-ый порт можно просто остановить.
Если это Apache (до первой перезагрузки):
sudo systemctl stop apache2

Чтобы узнать какая программа занимает 80-ый порт:
sudo netstat -anp | grep ':80'

Команда netstat является частью пакета net-tools, если его нет в системе надо установить:
sudo apt install net-tools

Аватар пользователя ant4 ant4 7 июля 2023 в 15:08
1

А вообще, правильнее будет настроить программу занимающую 80-ый порт.
Что и как настраивать зависит от программы.

Аватар пользователя VasyOK VasyOK 8 июля 2023 в 1:21

sudo netstat -anp | grep ':80'
выдает:
14 таких строчек:
tcp        0      Ц.Ы.Ф.Е.Р.К.И:56674      Ц.Ы.Ф.Е.Р.К.И:80       TIME_WAIT   -                  

и 1 такую строчку:
tcp6       0      0 :::80                   :::*                    LISTEN      1014/apache2  

sudo systemctl stop apache2 - действительно открывает технически домен без :8000 до перезагрузки. А как сделать чтобы и после перезагрузки это работало?

Аватар пользователя ant4 ant4 9 июля 2023 в 8:04

Возможно никогда.
Это вопрос предпочтений.
Мне удобнее работать в локальном окружении, чем в контейнере docker, если точнее, то настроить локальный apache + прочее мне проще, чем контейнер docker. Да и команды в консоли проще.
Озадачился вопросом заставить контейнер работать по HTTP и HTTPS, по отдельности не проблема, а вот вместе - пришлось пошевелить мозгами, т.к. docker для меня новинка.