我已经在自己的容器上安装并配置了nginx + php-fpm。一切正常,除了一件事:它们与用户www-data
(id:82)和同一组一起运行。
因此,挂载到容器的主机文件具有错误的用户/组(我的主要用户为1000:1000)。
如何运行这些容器能够以用户1000:1000?
的方式操作文件答案 0 :(得分:0)
为此,您必须通过 docker-file 在容器中定义特定用户和组。
Dockerfile
FROM php:7.1.6-fpm
RUN useradd -r -m -s /usr/sbin/nologin -g username -u 1000 username
ADD start-up /usr/local/bin/start-up
RUN chmod 0777 /usr/local/bin/start-up -R
ENTRYPOINT /usr/local/bin/start-up
然后你必须改变php的start-up
脚本
sed -i s/'user = www-data'/'user = username'/g /usr/local/etc/php-fpm.d/www.conf
sed -i s/'group = www-data'/'group = username'/g /usr/local/etc/php-fpm.d/www.conf
我在我的项目及其工作中使用它。
答案 1 :(得分:0)
用户的ID可以在图像中更改,以便为此目的映射主机用户的ID。
php-fpm-alpine 的示例:
RUN apk add shadow && usermod -u 1000 www-data && groupmod -g 1000 www-data
由于nginx以root身份运行(容器的root和主机的根目录),因此无需使用UID进行操作