Я устанавливаю nginx поверх образа php docker на основе fpm-stretch
, копирую некоторую конфигурацию и затем запускаю nginx -t
в Dockerfile
. Тот не работает с nginx: [emerg] open() "/tmp/nginx.pid" failed (13: Permission denied)
.
Конфигурация содержит pid /tmp/nginx.pid;
.
Dockerfile
:
FROM php:7.3.11-fpm-stretch
run apt-get update && apt-get install -y nginx nginx-extras
COPY .system_conf/nginx/nginx.conf /etc/nginx/nginx.conf
COPY .system_conf/nginx/real-ip.conf /etc/nginx/real-ip.conf
COPY .system_conf/nginx/app.conf /etc/nginx/sites-enabled/default
run touch /tmp/nginx.pid
run chown -R www-data:www-data /tmp/nginx.pid /etc/nginx /var/www /usr/local/etc/php-fpm*
run ls -la /tmp/nginx.pid
run whoami
run nginx -t
И результат сборки:
Step 6/10 : run touch /tmp/nginx.pid
---> Running in b78b8c25da6e
Removing intermediate container b78b8c25da6e
---> 0ca504a62dcc
Step 7/10 : run chown -R www-data:www-data /tmp/nginx.pid /etc/nginx /var/www /usr/local/etc/php-fpm*
---> Running in 6d0e3e6e0085
Removing intermediate container 6d0e3e6e0085
---> 5801bebe1238
Step 8/10 : run ls -la /tmp/nginx.pid
---> Running in 3779596a2bf9
-rw-r--r-- 1 www-data www-data 0 Aug 5 13:19 /tmp/nginx.pid
Removing intermediate container 3779596a2bf9
---> fa5fb9b67a43
Step 9/10 : run whoami
---> Running in 3c501d3ef8d0
root
Removing intermediate container 3c501d3ef8d0
---> f4c8d7c894a3
Step 10/10 : run nginx -t
---> Running in 91687a1ea4d2
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: [emerg] open() "/tmp/nginx.pid" failed (13: Permission denied)
nginx: configuration file /etc/nginx/nginx.conf test failed
И вот действительно странная вещь: Это происходит на компьютере моих коллег. На моем компьютере все работает нормально. Мы оба используем ubuntu (я 18.04, он 20.04) и одинаковые версии docker (19.03).
Обновление 1: Я делаю chmod 777 /tmp/nginx.pid
в Dockerfile
и получаю ту же ошибку.