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

    @Clubber_77 Автор вопроса
    Глеб Старков

    Спасибо, попробовал, но к сожалению не помогло. Ощущение, что какая-то проблема в Docker, а точнее в резолвинге имен внутри него, такой вывод сделал на основе следующих фактов:
    1. Принудительное выставление dns в docke-compose.yaml никак не меняет /etc/resolv.conf внутри контейнера
    2. Указание DNS сервера в /etc/docker/daemon.json тоже игнорируется
    3. Так же логи докера говорят о наличии ошибки резолвинга
    sudo journalctl -fu docker.service
    дек 16 09:21:56 USER dockerd[2233]: time="2024-12-16T09:21:56.268765332+03:00" level=error msg="[resolver] failed to query external DNS server" client-addr="udp:172.19.0.2:48111" dns-server="udp:172.16.5.69:53" error="read udp 172.19.0.2:48111->172.16.5.69:53: i/o timeout" question=";gitea.example.lan.\tIN\t A" spanID=792832d844233c3a traceID=bdd17a095d4badcbb5c8ee7555069eb5
    дек 16 09:21:56 USER dockerd[2233]: time="2024-12-16T09:21:56.268721329+03:00" level=error msg="[resolver] failed to query external DNS server" client-addr="udp:172.19.0.2:54899" dns-server="udp:172.16.5.69:53" error="read udp 172.19.0.2:54899->172.16.5.69:53: i/o timeout" question=";gitea.example.lan.\tIN\t AAAA" spanID=295056df1813a0a3 traceID=9c7f2ece8872a46cd32e3e8dad6800b4
    дек 16 09:21:57 USER dockerd[2233]: time="2024-12-16T09:21:57.288713560+03:00" level=info msg="ignoring event" container=99a8ef793f2fbbdeedaab5268dcdc7dac3d07c659221f94c3c01f1b0e323a6b8 module=libcontainerd namespace=moby topic=/tasks/delete type="*events.TaskDelete"
    дек 16 09:21:58 USER dockerd[2233]: time="2024-12-16T09:21:58.772175072+03:00" level=error msg="[resolver] failed to query external DNS server" client-addr="udp:172.19.0.2:50928" dns-server="udp:172.16.5.69:53" error="read udp 172.19.0.2:50928->172.16.5.69:53: i/o timeout" question=";gitea.example.lan.\tIN\t AAAA" spanID=f8b6d0d372d1e566 traceID=7501793ad6a8ac48a3ddde6331ca00e6
    дек 16 09:21:58 USER dockerd[2233]: time="2024-12-16T09:21:58.772236282+03:00" level=error msg="[resolver] failed to query external DNS server" client-addr="udp:172.19.0.2:37512" dns-server="udp:172.16.5.69:53" error="read udp 172.19.0.2:37512->172.16.5.69:53: i/o timeout" question=";gitea.example.lan.\tIN\t A" spanID=e8f3b61bcf9e7844 traceID=28d4173f059553512f578b1ddf907e0d
    дек 16 09:22:00 USER dockerd[2233]: time="2024-12-16T09:22:00.270517727+03:00" level=error msg="[resolver] failed to query external DNS server" client-addr="udp:172.19.0.2:60598" dns-server="udp:172.16.5.69:53" error="read udp 172.19.0.2:60598->172.16.5.69:53: i/o timeout" question=";gitea.example.lan.\tIN\t AAAA" spanID=53529286c0731171 traceID=79098861f89df7932533eae38a28ef6d
    дек 16 09:22:00 USER dockerd[2233]: time="2024-12-16T09:22:00.270631885+03:00" level=error msg="[resolver] failed to query external DNS server" client-addr="udp:172.19.0.2:36430" dns-server="udp:172.16.5.69:53" error="read udp 172.19.0.2:36430->172.16.5.69:53: i/o timeout" question=";gitea.example.lan.\tIN\t A" spanID=f338a582274cd9e3 traceID=27322d1aa9bb4adc9587b063ad1c27ce
    Написано
  • Как правильно написать обобщенный метод?

    @Clubber_77 Автор вопроса
    Полезная информация, спасибо, не знал, что можно таким образом работать с json. Но на данном этапе у меня все нужные объекты уже подготовленны, и прекрасно десериализуются. Проблема были именно в том, как сделать обобщенный класс, который бы был десиреализован из json объекта, который всегда имеет одну и туже структуру, но может в себе содержать массив элементов разных классов в поле result.

    {
      "info": {
        "count": 51,
        "pages": 3,
        "next": "https://rickandmortyapi.com/api/episode?page=2",
        "prev": null
      },
      "results": [
        {
          "id": 1,
          "name": "Pilot",
          "air_date": "December 2, 2013",
          "episode": "S01E01",
          "characters": [
            "https://rickandmortyapi.com/api/character/1",
            "https://rickandmortyapi.com/api/character/2",
            //...
          ],
          "url": "https://rickandmortyapi.com/api/episode/1",
          "created": "2017-11-10T12:56:33.798Z"
        },
        // ...
      ]
    }


    в данном примере в results лежит массив эпизодов мультсериала, а может быть массив локаций или персонажей.

    И как я и говорил, можно было сделать тупо в лоб, для каждого варианта сделать свой класс, но я понимаю, что так делать неправильно, и хотел найти решений. Потому что с ходу понять, как параметром передать обобщение и сам обобщенный класс в метод не смог, и решение быстро не нагулилось.
    Написано
  • Как правильно написать обобщенный метод?

    @Clubber_77 Автор вопроса
    My1Name,

    По условию дз, мне дали ссылку на ресурс с API. Моя задача, запросить объект в формате Json и отобразить его с помощью SpringMVC и шаблонизатора thymeleaf.

    Если написать в лоб:

    public class Answer {
        private Info info;
        private Episode[] results;
    }


    то объект прекрасно десериализуется, но я хочу сделать обобщенный класс, чтобы не плодить сущности, которые, в общем-то, не нужны.
    Написано
  • Как правильно написать обобщенный метод?

    @Clubber_77 Автор вопроса
    Вот на SO что-то похожее. Буду дома опробую отпишусь
    Написано
  • Как правильно написать обобщенный метод?

    @Clubber_77 Автор вопроса
    Из того как я себе это представляю, я должен в метод передать класс, который будет выступать обобщением, и как-то в метод, который десериализует json запихнуть уже класс с обобщением.
    Написано
  • Как правильно написать обобщенный метод?

    @Clubber_77 Автор вопроса
    My1Name, ну так он и отправляет. Я указал, что по запросу отдает.
    Написано
  • Пропадает доступ в сеть при подключении ip камеры в Ethernet порт?

    @Clubber_77 Автор вопроса
    Александр Карабанов ,
    Andrey Barbolin ,
    Господа, спасибо Вам огромное. Видимо я в какой-то момент допустил ошибку, и что-то прописал не правильно. Переустановил систему начисто, разнес по разным подсетям интерфейсы, и все заработало.

    При подключенном wifi:
    pi@raspberrypi:~ $ ip l
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
        link/ether dc:a6:32:53:01:d7 brd ff:ff:ff:ff:ff:ff
    3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DORMANT group default qlen 1000
        link/ether dc:a6:32:53:01:d8 brd ff:ff:ff:ff:ff:ff
    
    
    pi@raspberrypi:~ $ 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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether dc:a6:32:53:01:d7 brd ff:ff:ff:ff:ff:ff
        inet 192.168.0.69/24 brd 192.168.0.255 scope global noprefixroute eth0
           valid_lft forever preferred_lft forever
        inet6 fe80::8cbb:d1f7:ccb6:d1e0/64 scope link 
           valid_lft forever preferred_lft forever
    3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether dc:a6:32:53:01:d8 brd ff:ff:ff:ff:ff:ff
        inet 192.168.1.57/24 brd 192.168.1.255 scope global dynamic noprefixroute wlan0
           valid_lft 25126sec preferred_lft 21976sec
        inet6 fe80::c2cf:43d0:9884:8e2d/64 scope link 
           valid_lft forever preferred_lft forever
    
    
    pi@raspberrypi:~ $ ip r
    default via 192.168.1.1 dev wlan0 proto dhcp src 192.168.1.57 metric 303 
    192.168.0.0/24 dev eth0 proto dhcp scope link src 192.168.0.69 metric 202 
    192.168.1.0/24 dev wlan0 proto dhcp scope link src 192.168.1.57 metric 303 
    
    
    pi@raspberrypi:~ $ ip ne
    192.168.1.54 dev wlan0 lladdr 30:24:a9:5b:43:cd REACHABLE
    192.168.0.70 dev eth0 lladdr 2c:6f:51:13:75:4e STALE
    192.168.1.62 dev wlan0 lladdr 48:b0:2d:36:41:15 REACHABLE
    192.168.1.1 dev wlan0 lladdr 50:ff:20:22:ee:f2 REACHABLE
    fe80::52ff:20ff:fe22:eef2 dev wlan0 lladdr 50:ff:20:22:ee:f2 router REACHABLE


    При подключенном модеме:
    pi@raspberrypi:~ $ ip l
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
        link/ether dc:a6:32:53:01:d7 brd ff:ff:ff:ff:ff:ff
    3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN mode DORMANT group default qlen 1000
        link/ether dc:a6:32:53:01:d8 brd ff:ff:ff:ff:ff:ff
    4: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
        link/ether 00:1e:10:1f:00:00 brd ff:ff:ff:ff:ff:ff
    
    pi@raspberrypi:~ $ 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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether dc:a6:32:53:01:d7 brd ff:ff:ff:ff:ff:ff
        inet 192.168.0.69/24 brd 192.168.0.255 scope global noprefixroute eth0
           valid_lft forever preferred_lft forever
        inet6 fe80::8cbb:d1f7:ccb6:d1e0/64 scope link 
           valid_lft forever preferred_lft forever
    3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
        link/ether dc:a6:32:53:01:d8 brd ff:ff:ff:ff:ff:ff
    4: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 00:1e:10:1f:00:00 brd ff:ff:ff:ff:ff:ff
        inet 192.168.8.107/24 brd 192.168.8.255 scope global dynamic noprefixroute eth1
           valid_lft 86285sec preferred_lft 75485sec
        inet6 fe80::f7e6:57f8:e96d:a207/64 scope link 
           valid_lft forever preferred_lft forever
    
    
    pi@raspberrypi:~ $ ip r
    default via 192.168.8.1 dev eth1 proto dhcp src 192.168.8.107 metric 204 
    192.168.0.0/24 dev eth0 proto dhcp scope link src 192.168.0.69 metric 202 
    192.168.8.0/24 dev eth1 proto dhcp scope link src 192.168.8.107 metric 204 
    
    
    pi@raspberrypi:~ $ ip ne
    192.168.0.70 dev eth0 lladdr 2c:6f:51:13:75:4e STALE
    192.168.8.1 dev eth1 lladdr 00:10:20:30:40:50 STALE
    fe80::210:20ff:fe30:4050 dev eth1 lladdr 00:10:20:30:40:50 router REACHABLE
  • Пропадает доступ в сеть при подключении ip камеры в Ethernet порт?

    @Clubber_77 Автор вопроса
    Александр Карабанов,

    Я пробовал общение Малинки и камеры определить в другой подсети (192.168.0.*), а интернет через wifi оставлял на 192.168.1.*, но это ровным счётом ничего не меняло, ситуация была точно такая же,- или камера, или доступ в сеть.

    Я допускаю, конечно же, что вполне мог где-то ошибиться, ибо администрирование сетей это и близко не мой профиль, но если то, что я описал в этом сообщении выше можно назвать двумя разными подсетями, то я точно это пробовал.
  • Пропадает доступ в сеть при подключении ip камеры в Ethernet порт?

    @Clubber_77 Автор вопроса
    Andrey Barbolin,
    Я пробовал прописывать для eth0, на котором висит камера, статику в виде 192.168.0.35, а на самой камере 192.168.0.30, при этом на wlan0 с доступом к интернету был 192.168.1.57, и при такой конфигурации, у меня точно так же ничего не работало (либо доступ к камере, если она подключена, либо интернет, если eth0 не активен).
  • Пропадает доступ в сеть при подключении ip камеры в Ethernet порт?

    @Clubber_77 Автор вопроса
    Andrey Barbolin,
    pi@raspberrypi:~ $ rpi@raspberrypi:~ $ route
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    default         192.168.1.1     0.0.0.0         UG    303    0        0 wlan0
    192.168.1.0     0.0.0.0         255.255.255.0   U     202    0        0 eth0
    192.168.1.0     0.0.0.0         255.255.255.0   U     303    0        0 wlan0
    pi@raspberrypi:~ $ sudo ip route del default
    pi@raspberrypi:~ $ route
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    192.168.1.0     0.0.0.0         255.255.255.0   U     303    0        0 wlan0
    pi@raspberrypi:~ $

    результата не дало
  • Пропадает доступ в сеть при подключении ip камеры в Ethernet порт?

    @Clubber_77 Автор вопроса
    Вывод команды такой при подключенной камере и wi fi
    pi@raspberrypi:~ $ ip rout show
    default via 192.168.1.1 dev wlan0 proto dhcp src 192.168.1.57 metric 303 
    192.168.1.0/24 dev eth0 proto dhcp scope link src 192.168.1.54 metric 202 
    192.168.1.0/24 dev wlan0 proto dhcp scope link src 192.168.1.57 metric 303

    теперь мне бы понять что не так, потому что судя по первой строке дефолтный маршрут через wifi.
    в /etc/dhcpcd.conf прописано
    interface eth0
    static ip_address=192.168.1.54

    остальное по дефолту