<rmcreative>

RSS

Все заметки с тегом «Docker»

Можно уточнить:

    (1)
    (1)
    (1)
    (1)
    (1)
    (1)
  1. XDebug и Docker

    28 декабря 2023

    Использовать XDebug образах Docker для прода долго было плохой идеей так как само наличие XDebug меняло генерируемые PHP опкоды. Из-за этого частенько использовались несколько образов (для разработки и для прода), наследуемые друг от друга.

    Несколько лет назад автор XDebug Derick Rethans сказал мне что с релизом XDebug 3 проблема стала не актуальной, но тогда я это лично не проверял.

    На недавнем митапе сообщества PHP Кирилл Несмеянов проводил PHP викторину. Один из вопросов был «Сколько вызовов функций в коде, если включен Xdebug?»:

    function example() { return 42; }
    example();

    Кирилл озвучил опасение что даже если XDebug установлен, но не включен, то опкоды будут меняться. Давайте это проверим.

    Читаем

    Комментировать
  2. Alpine небольшой, но медленный

    28 декабря 2023

    Alpine часто используется как базовый образ Docker потому как он довольно компактный. Только вот компактность не значит производительность.

    https://superuser.com/questions/1219609/why-is-the-alpine-docker-image-over-50-slower-than-the-ubuntu-image

    Комментировать
  3. Форсируем LF для всего проекта

    27 января 2022

    Форсировать линуксовое окончание строк LF вместо CRLF из Windows полезно потому как тот же Docker CRLF очень не любит. Настраивать локально что-то не очень приятно, поэтому просто замечательно что есть возможность форсировать это для всей команды средствами git.

    1. В корне репозитория создаём .gitattributes, пишем туда * text=auto eol=lf первой строкой.
    2. Делаем коммит с этим изменением, пушим.

    Собственно, всё. Осталось локально себе сконвертить всё в LF. В этом также поможет git:

    1. git rm --cached -r .
    2. git reset --hard
    Комментировать
  4. Дебажим остановившийся контейнер Docker

    26 августа 2021

    Бывает что надо понять, почему не поднялся контейнер. Ну то есть он вроде запустился, но сразу остановился. В stdout ничего не написал.

    1. docker ps -a - узнаём ID контейнера.
    2. docker commit ID-контейнера mydebug - делаем из контейнера образ.
    3. docker run -it --rm --entrypoint sh mydebug - мы внутри. Можем смотреть, например, логи в локальной файловой системе.
    4. docker image rm mydebug - чистим за собой.
    Комментировать
  5. Разрешить Synology Docker ходить в интернет

    19 апреля 2021

    Если у вас нормально настроен firewall, то есть последним правилом запрещено всё, то Docker-контейнеры по умолчанию не смогут ходить в интернет.

    Чтобы исправить нужно это явно разрешить подсети Docker.

    Идём в Docker -> Network. Раскрываем Bridge и видим подсеть. Например, 172.17.0.0/16. Сразу считаем маску подсети. Получается 255.255.0.0.

    Идём в Control Panel -> Security -> Firewall -> Edit Rules. Добавляем новое правило:

    • Ports: All
    • Source IP: Specific IP
      • Subnet
      • IP address: 172.17.0.0
      • Subnet mask: 255.255.0.0
    • Action: Allow

    Правило ставим выше общего запрещающего. Теперь Docker сможет ходить в интернет.

    Комментировать