如何更改Dockerfile中文件夹的权限
我试图将容器推送到heroku上,但在更改权限时出错如何更改Dockerfile中文件夹的权限,docker,heroku,dockerfile,heroku-cli,Docker,Heroku,Dockerfile,Heroku Cli,我试图将容器推送到heroku上,但在更改权限时出错 FROM ubuntu:latest ENV PORT=80 RUN apt-get update \ && apt-get install -y curl zip unzip \ php7.4 php7.4-fpm \ nginx gettext-base sudo COPY ./webapp /var/www/myapp WORKDIR /var/www/
FROM ubuntu:latest
ENV PORT=80
RUN apt-get update \
&& apt-get install -y curl zip unzip \
php7.4 php7.4-fpm \
nginx gettext-base sudo
COPY ./webapp /var/www/myapp
WORKDIR /var/www/myapp
COPY default.conf.template /etc/nginx/conf.d/default.conf.template
COPY nginx.conf /etc/nginx/nginx.conf
RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo
USER docker
RUN chown -R www-data:www-data /var/www
RUN chmod -R 755 /var/www
CMD /bin/bash -c "envsubst '\$PORT' < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf" && nginx -g 'daemon off;'
先谢谢你
USER docker
RUN chown -R www-data:www-data /var/www
USER docker
将导致所有后续的RUN
命令以docker
用户身份运行(请参阅),但是此用户无权在生成期间更改/var/www
的所有权,因此会出现错误
在设置docker
用户之前,您应该运行chown
命令,例如:
# [ ... ]
COPY nginx.conf /etc/nginx/nginx.conf
RUN chown -R www-data:www-data /var/www
RUN chmod -R 755 /var/www
RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo
USER docker
或者更好:
# [ ... ]
COPY nginx.conf /etc/nginx/nginx.conf
RUN chown -R www-data:www-data /var/www && \
chmod -R 755 /var/www && \
useradd -m docker && echo "docker:docker" | chpasswd && \
adduser docker sudo
USER docker
哪个会
# [ ... ]
COPY nginx.conf /etc/nginx/nginx.conf
RUN chown -R www-data:www-data /var/www && \
chmod -R 755 /var/www && \
useradd -m docker && echo "docker:docker" | chpasswd && \
adduser docker sudo
USER docker