Сейчас в последней версии D4D проекты в браузере открываются после с окончанием порта: drupal.docker.localhost:8000.
Как сделать, чтобы открывались без этого окончания, т.е.: drupal.docker.localhost ?
Пару лет назад в docker-compose.yml нужно было исправить:
- '8000:80'
на
- '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
Комментарии
У вас на 80м порту что то висит.
https://www.putorius.net/process-listening-on-port.html
nmap тоже выдаст ПО на порту https://yandex.ru/images/pad/search?from=tabbar&img_url=https%3A%2F%2Fww...
Эта информация как-то поможет?
⠴ 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
(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 -
80/tcp: 1054 1058 1059 1060 1061 1062
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))
Может быть у тебя апач или нжинкс в самой убунте крутится?
Может. Как это проверить?
И что если он крутится?
Если крутится, значит надо остановить, он же порт занимает. А проверить можно через команду top - посмотреть все запущенные процессы
Как остановить? Что у меня отпадет если остановить?
Выполнял:
sudo kill -9 $(sudo lsof -t -i:80)
и
fuser -k 80/tcp
Ошибка описанная выше остается.
Зачем так издеваться над системой?
Программу занимающую 80-ый порт можно просто остановить.
Если это Apache (до первой перезагрузки):
sudo systemctl stop apache2
Чтобы узнать какая программа занимает 80-ый порт:
sudo netstat -anp | grep ':80'
Команда netstat является частью пакета net-tools, если его нет в системе надо установить:
sudo apt install net-tools
А вообще, правильнее будет настроить программу занимающую 80-ый порт.
Что и как настраивать зависит от программы.
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 до перезагрузки. А как сделать чтобы и после перезагрузки это работало?apache можно или удалить (если не используется) или убрать его из автозагрузки
sudo systemctl disable apache2
Спасибо ant4!
Удалил его из автозагрузки.
А когда он может мне понадобиться чисто гипотетически?
sudo systemctl enable apache2
или
sudo systemctl start apache2
Спасибо, Юрий, тоже пригодится.
Я имел ввиду по какой причине он может мне понадобиться?
Возможно никогда.
Это вопрос предпочтений.
Мне удобнее работать в локальном окружении, чем в контейнере docker, если точнее, то настроить локальный apache + прочее мне проще, чем контейнер docker. Да и команды в консоли проще.
Озадачился вопросом заставить контейнер работать по HTTP и HTTPS, по отдельности не проблема, а вот вместе - пришлось пошевелить мозгами, т.к. docker для меня новинка.
Ок, спасибо всем, буду дальше жить.