Общая память Apache для mod_digest в контейнере Docker только для чтения
Я запускаю Docker-контейнер, используя следующие аргументы;
docker run -d \
-v "$(pwd)/data/logs:/logs" \
-v "$(pwd)/data/auth:/auth" \
-v "/mnt/data:/data" \
-v "$(pwd)/data/dav.config:/usr/local/apache2/conf/dav.conf" \
--memory="2g" \
--cpu-shares=1024 \
--read-only="true" \
--tmpfs /tmp --tmpfs /run \
--restart="always" \
--name dav \
dav
Однако при запуске httpd я получаю;
[Wed May 11 10:26:32.938887 2016] [auth_digest:notice] [pid 1:tid 139835054438272] AH01757: generating secret for digest authentication ...
[Wed May 11 10:26:32.939164 2016] [auth_digest:error] [pid 1:tid 139835054438272] (30)Read-only file system: AH01762: Failed to create shared memory segment on file /usr/local/apache2/logs/authdigest_shm.1
[Wed May 11 10:26:32.939194 2016] [auth_digest:error] [pid 1:tid 139835054438272] (30)Read-only file system: AH01760: failed to initialize shm - all nonce-count checking, one-time nonces, and MD5-sess algorithm disabled
[Wed May 11 10:26:32.939210 2016] [:emerg] [pid 1:tid 139835054438272] AH00020: Configuration Failed, exiting
Я не знаю никаких указаний, чтобы указать местоположение /usr/local/apache2/logs/authdigest_shm.1
, /run и /tmp являются tmpfs, остальные доступны только для чтения. Есть идеи?
1 ответ
Попробуйте изменить DefaultRuntimeDir
директивное значение
DefaultRuntimeDir
Директива устанавливает каталог, в котором сервер будет создавать различные файлы времени выполнения (общая память, блокировки и т. д.). Если задан как относительный путь, полный путь будет относительноServerRoot
,