05/01/2019 - DOCKER
Varsayılan olarak PHP-FPM ve Nginx belirli bir kullanıcı/grup kullanır. Yapılandırma ayarlarında PHP-FPM kullanıcısı ve grubu www-data
olarak, Nginx kullanıcısı ise nginx
olarak ayarlanmıştır. Biz bunu bu örneğimizde inanzzz
olarak değiştireceğiz.
# www.conf
...
[www]
user=www-data
group=www-data
listen.owner=www-data
listen.group=www-data
...
# nginx.conf
...
user nginx;
...
# www.conf
...
[www]
user=inanzzz
group=inanzzz
listen.owner=inanzzz
listen.group=inanzzz
...
# Dockerfile
FROM php:7.2.13-fpm
....
# Create group "inanzzz"
# set group id "1000"
RUN groupadd -g 1000 inanzzz
# Create user "inanzzz"
# set user id "1000"
# assign to existing group id "1000"
# set home directory "/home/inanzzz"
# set shell "/bin/bash"
RUN useradd -d /home/inanzzz -s /bin/bash -u 1000 -g 1000 inanzzz
# Create home directory
RUN mkdir /home/inanzzz
# User and group own home directory
RUN chown -R inanzzz:inanzzz /home/inanzzz
USER inanzzz
CMD ["php-fpm", "--nodaemonize"]
# nginx.conf
user inanzzz;
...
# Dockerfile
FROM nginx:1.15.7
...
# Create group "inanzzz"
# set group id "1000"
RUN groupadd -g 1000 inanzzz
# Create user "inanzzz"
# set user id "1000"
# assign to existing group id "1000"
# set home directory "/home/inanzzz"
# set shell "/bin/bash"
RUN useradd -d /home/inanzzz -s /bin/bash -u 1000 -g 1000 inanzzz
# Create home directory
RUN mkdir /home/inanzzz
# User and group own home directory
RUN chown -R inanzzz:inanzzz /home/inanzzz
# Necessary steps to avoid permission errors
RUN touch /var/run/nginx.pid \
&& chown -R inanzzz:inanzzz /var/run/nginx.pid /var/cache/nginx
USER inanzzz
Yeni kullanıcı inanzzz
diğer kullanıcı nginx
'in ayrıcalıklarına sahip olmadığından, varsayılan 80
ve 443
portlarını kullanamayız. Aşağıdaki değişikliklerden sonra docker-compose.yml dosyasında '8081:8080'
ve '4431:4443'
portlarını kullanabilirsiniz.
# Site virtualhost config
server {
listen 8080;
listen 4443 default_server ssl;
...
}
Uygulama klasörü eğer docker-compose.yml dosyası içindeki paylaşılan bir klasör olarak ayarlanmışsa, yeni kullanıcının bu uygulamanın sahibi olması için /home/inanzzz
bölümünü paylaşılan klasör olarak değiştirebilirsiniz.