Как изменить `core_pattern` при сборке docker изображения - PullRequest
1 голос
/ 07 марта 2020

Я хочу изменить core_pattern при построении docker изображения, и мой файл docker выглядит следующим образом:

FROM centos:7
RUN echo "core-%e" > /proc/sys/kernel/core_pattern

Затем я запустил docker build и получил ошибку

/bin/sh: /proc/sys/kernel/core_pattern: Read-only file system

Кто-нибудь поможет?

Ответы [ 2 ]

1 голос
/ 06 мая 2020

Мне это нужно было самому, я только что узнал как. это не относится к docker, но к linux в целом. Я использую Ubuntu, и я на 99% уверен, что centos будет вести себя так же.

он редактируется с помощью команды sysctl.

см. Пример

bash$ cat /proc/sys/kernel/core_pattern 
|/usr/share/apport/apport %p %s %c %d %P %E
bash$ sudo sysctl -w kernel.core_pattern="|/usr/share/apport/apport-kde %p %s %c %d %P %E"
kernel.core_pattern = |/usr/share/apport/apport-kde %p %s %c %d %P %E
bash$ cat /proc/sys/kernel/core_pattern 
|/usr/share/apport/apport-kde %p %s %c %d %P %E
bash$

обратите внимание, что значение, начинающееся с |, равно express командам. дамп ядра будет отправлен команде как STDIN

Поскольку вы задали вопрос о docker, позвольте мне также предоставить совместимый ответ.

FROM centos:7
RUN sudo sysctl -w kernel.core_pattern="core-%e"

для получения дополнительной информации о ядре шаблон, который вы можете использовать в своем файле вместо% e, см. https://sigquit.wordpress.com/2009/03/13/the-core-pattern/

и еще один связанный вопрос / ответ, который содержит более подробную информацию

https://unix.stackexchange.com/questions/343275/why-is-editing-core-pattern-restricted

0 голосов
/ 07 мая 2020

Я нашел другой способ. Добавить эхо "core-% e" | sudo tee / proc / sys / kernel / core_pattern &> / dev / null в ~ / .bashr c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...