Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更改Dockerfile中文件夹的权限_Docker_Heroku_Dockerfile_Heroku Cli - Fatal编程技术网

如何更改Dockerfile中文件夹的权限

如何更改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/

我试图将容器推送到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/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