LINUX.ORG.RU

Проблемы с Docker контейнером.

 , ,


0

1

https://hub.docker.com/_/odoo

docker-compose.yml

version: '2'
services:
  web:     
    image: odoo:13.0
    depends_on:
      - db
    ports:
      - "8069:8069"
    user: root
  db:
    image: postgres:10
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_PASSWORD=odoo
      - POSTGRES_USER=odoo

Стояли, никого не трогали два локальных контейнера для Odoo. Как вдруг что-то отвалилось после перезагрузки.

[user@HP-Pavilion-g6 ~]$ docker logs -f 9fb8b780d55812a7c757e770dd22b2fc3798ae66a0249e230052a73c1b2088e2
Database connection failure: could not connect to server: No route to host
        Is the server running on host "db" (172.18.0.2) and accepting
        TCP/IP connections on port 5432?

С таким же docker-compose всё раньше работало. Что случилось, понятия не имею. Ставил systemd.unified_cgroup_hierarchy=0 в опциях ядра, чтобы откатить cgroups.

[user@HP-Pavilion-g6 .docker]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 84:34:97:71:64:2f brd ff:ff:ff:ff:ff:ff
    altname enp8s0
3: wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether c0:18:85:45:8b:cb brd ff:ff:ff:ff:ff:ff
    altname wlp7s0
    inet 192.168.12.11/24 brd 192.168.12.255 scope global dynamic noprefixroute wlo1
       valid_lft 76030sec preferred_lft 76030sec
    inet6 fe80::227d:d5e2:5917:1430/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
89: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:42:1a:c3:4c brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever
94: br-2f049989af2d: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:e6:02:ff:43 brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.1/16 brd 172.18.255.255 scope global br-2f049989af2d
       valid_lft forever preferred_lft forever
    inet6 fe80::42:e6ff:fe02:ff43/64 scope link 
       valid_lft forever preferred_lft forever

Бридж между контейнерами ставился по-дефолту.

Ответ на: комментарий от Artamudo

у тебя база физически то живая? я в твоем композе не вижу никаких маутов для файлов базы. Ты умышленно так сделал или просто сократил файл? После рестарта, если нет волюмов, композ не должен подцепить старую базу.

v9lij ★★★★★ ()
Ответ на: комментарий от v9lij

Базы нет. Она была пустая. Что с маунтами, что без – результат один и тот же. На данные мне плевать, были тестовые. И да, у меня есть доступ к шеллу бд.

Просто если оно работало на этой же конфигурации, то почему сейчас такая хрень.

Все волюмы удалял перед новым созданием контейнеров.

Причём база и сейчас запущена, а web сразу падает после неподключения.

Artamudo ★★ ()
Последнее исправление: Artamudo (всего исправлений: 2)
Ответ на: комментарий от v9lij

Я на то ответил, или нет?

у тебя база физически то живая?

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
134c4db4cf15        odoo:13.0           "/entrypoint.sh odoo"    32 minutes ago      Exited (1) 31 minutes ago                       docker_web_1
2ab715ba9668        postgres:10         "docker-entrypoint.s…"   32 minutes ago      Up 13 minutes               5432/tcp            docker_db_1

я в твоем композе не вижу никаких маутов для файлов базы. Ты умышленно так сделал или просто сократил файл?

Я взял простейший пример из dockerhub. Мне маунты в принципе и не нужны.

После рестарта, если нет волюмов, композ не должен подцепить старую базу.

Не понял о какой старой базе речь, если я всё удалил и пересоздал заново.

Artamudo ★★ ()
Последнее исправление: Artamudo (всего исправлений: 1)

умвр

db_1   | 2020-06-25 19:17:08.466 UTC [1] LOG:  database system is ready to accept connections
web_1  | Running as user 'root' is a security risk.
web_1  | 2020-06-25 19:17:12,149 1 INFO ? odoo: Odoo version 13.0-20200417

Но судя по твоему логу из пасты Database connection failure: could not connect to server: No route to host, у тебя проблемы с резолвом.

Попробуй в настройках контейнера базы дописать

hostname: db
itn ★★ ()
Ответ на: комментарий от itn

Так адрес же правильный получает. Пингуется причём.

Может быть проблема что я ставил проприетарные драйвера на сеть, broadcom-wl. Это как-то вообще может влиять?

Попробуй в настройках контейнера базы дописать

Попробую уже завтра. Потом отпишусь.

Artamudo ★★ ()
Последнее исправление: Artamudo (всего исправлений: 2)
Ответ на: комментарий от Artamudo

Я на то ответил, или нет?

да, на то. Это я затупил и не понял сразу проблему.

А ты проверял, айпишник действительно принадлежит контейнеру? Не пробовал почистить все котнейнеры и заново запустить раскатку композа?

v9lij ★★★★★ ()
Ответ на: комментарий от v9lij

А ты проверял, айпишник действительно принадлежит контейнеру?

Да, это он.

Не пробовал почистить все котнейнеры и заново запустить раскатку композа?

Делал это раз десять, с разными конфигурациями.

Если просто делаю docker run, то работает, но без –user root. (Нет, без «user:root» compose тоже не работает)

Artamudo ★★ ()
Последнее исправление: Artamudo (всего исправлений: 1)

Попробуй что-то такое:

version: '2.4'
services:
  web:
  ...
    depends_on:
      db:
        condition: service_healthy
  db:
  ...
    healthcheck:
      test: ["CMD", "pg_isready"]
      timeout: 5s
      retries: 3

pg_isready должен уже быть в используемом образе.

Последние изменения в образе (на данный момент они сделаны 5 часов назад) были с виду никак не связанные с возникшей у тебя проблемой: https://github.com/docker-library/postgres/pull/749

AnDoR ★★★★★ ()
Ответ на: комментарий от Artamudo

Я бы на твоём месте проверил бы сеть и коннект к базе из контейнера web.

На худой конец сделай ‘docker system prune –all –force’ хотя это вряд ли поможет, но зато будет уверенность что у тебя те самые неизменённые образы.

itn ★★ ()
Ответ на: комментарий от itn

Теперь я запустил просто через docker run, и, о боже – оно запустилось. На сотый раз!!! Проблема в compose значит, но мне уже всё равно.

/thread

Artamudo ★★ ()
Последнее исправление: Artamudo (всего исправлений: 1)