Unix-команда sed в Dockerfile - PullRequest
       5

Unix-команда sed в Dockerfile

0 голосов
/ 06 февраля 2019

Пример найден на GitHub:

FROM "xxx"/nginx-php-fpm:php73

MAINTAINER "xxx"

# Remove existing webroot, configure PHP session handler for Redis, install postgresql-client (pg_dump)
RUN rm -rf /usr/share/nginx/* && \
sed -i -e "s/memory_limit\s*=\s*.*/memory_limit = 256M/g" ${php_conf} && \
...

Как я понял значение ОПЦИИ:
-i: "где редактировать" и
-e: "сценарий должен бытьexecute "

У меня вопрос: что делает эта строка?
sed -i -e "s/memory_limit\s*=\s*.*/memory_limit = 256M/g" ${php_conf}

Когда я пытаюсь запустить строку, ответ: sed: no input files
Как этопонять ${php_conf}?

1 Ответ

0 голосов
/ 06 февраля 2019

Эта строка заменяет все совпадения memory_limit = ... до memory_limit = 256M в файле php_conf.Проблема в этом Dockerfile заключается в том, что вы не определили переменную среды php_conf и, следовательно, нет входного файла.

Это можно легко исправить, добавив переменную env перед вашей командой RUN:

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