当前位置: 首页 > 知识库问答 >
问题:

错误:mkdir与chown不工作在Dockerfile(nginx与php-fpm)

段干博明
2023-03-14

为了版本控制和安全,我想将两个Dockerfile合并为一个,然后为. sock=创建一个目录

第一个Dockerfile一半

FROM debian:jessie

ENV NGINX_VERSION 1.11.6-1~jessie


RUN apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 \
        && echo "deb http://nginx.org/packages/mainline/debian/ jessie nginx" >> /etc/apt/sources.list \
        && apt-get update \
        && apt-get install --no-install-recommends --no-install-suggests -y \
                                                ca-certificates \
                                                nginx=${NGINX_VERSION} \
                                                nginx-module-xslt \
                                                nginx-module-geoip \
                                                nginx-module-image-filter \
                                                nginx-module-perl \
                                                nginx-module-njs \
                                                gettext-base \
        && rm -rf /var/lib/apt/lists/*

# forward request and error logs to docker log collector
RUN ln -sf /dev/stdout /var/log/nginx/access.log \
        && ln -sf /dev/stderr /var/log/nginx/error.log


EXPOSE 80 443
#CMD ["nginx", "-g", "daemon off;"]

第二个Dockerfiel代码是这个PHP代码的一半,相应的文件比这个代码高一级。我不会公开9000端口并注释掉CMD。所有这些都通过supervisord进行管理。

我在docker compose的帮助下构建了它

version: '2'

services:
  web:
    build:
      context: ../../builds/nx1116Php71RC6Comp123_J
      dockerfile: Dockerfile
    image:
      tl_nx1116php71rc6comp123:v1
    #mounts HOST:CONTAINER (the actual server to the container system)
    volumes:
      #nginx
      - ../../data/nxphp/nginx1116/html:/usr/share/nginx/html
      - ../../data/nxphp/nginx1116/conf.d:/etc/nginx/conf.d
      - ../../logs/nxphp:/var/log/nginx
      #PHP
      - ../../data/nxphp/php71fpm/etc:/usr/local/etc
#      - ../../logs/nxphp/php71fpm:?????
      #Supervisor
      - ../../data/nxphp/supervisor/supervisor.conf:/etc/supervisor.conf
      - ../../logs/supervisor:/var/log/supervisor
    #foward port HOST:CONTAINER
    ports:
      - "80:80"
      - "443:443"

当我这样运行它时,设置php和nginx conf来使用9000都可以正常工作。

但我想和你谈谈。短袜没有,所以我需要创建一个/目录,nginx可以将它放在这个目录中。因此,在我的脑海中,我把docker文件放在了末尾

RUN set -xe \
        mkdir -p /var/run/php-fpm
        && chown www-data:www-data /var/run/php-fpm

然而,这总是以建筑错误而告终。当我执行部分构建docker映像时,我找不到/var/run/php fpm。我也试着把它投入运行,但结果是一样的。从它发出两个RUN命令“工作”的方式,我没有错误,但文件夹仍然不存在,然后很明显我的图像退出,它找不到。袜子文件夹。

任何帮助都将不胜感激

共有1个答案

梁才
2023-03-14

这一行有两个错误:

RUN set -xe \
    mkdir -p /var/run/php-fpm
    && chown www-data:www-data /var/run/php-fpm

第一个是mkdir是没有

RUN set -xe \
 && mkdir -p /var/run/php-fpm \
 && chown www-data:www-data /var/run/php-fpm

 类似资料:
  • 问题内容: 我的Dockerfile创建一个目录,将其chown,然后再列出该目录。该目录仍归root用户所有。这是为什么? 这是Dockerfile: 这是“ docker build”的输出: Docker版本1.2.0,构建fa7b24f 主机运行Ubuntu 12.04,但具有3.13.0-36通用内核。 问题答案: 回答我自己的问题:它声明为卷。如果取出VOLUME指令,则将生效。 此外

  • 我安装了nginx+php+mysql,我的phpmyadmin运行良好。 我下载了wordpress,然后我试着运行它,得到了错误: 我在php5-fpm.sock listen.mode、group、owner中搜索并尝试了所有更改,但仍然不起作用。 请帮助我如何解决这个关键问题。

  • 我刚刚更新到Laravel5.2,然后尝试使用php artisan服务 像这样的错误 PHP致命错误:在E:\xampp\htdocs\laravel5\vendor\laravel\framework\src\light\Foundation\ProviderRepository中找不到类“App\Providers\AuthServiceProvider”。php在线146 [Symfony

  • 我有下面的搜索片段,当我只使用mysql表中的value1和value2数据时,它就工作了。 当我添加到下面的例子中的value e1r和value e2r的查询中,并尝试在页面上进行搜索时,它会给我这个错误这意味着我在查询中有一个错误。 我到底做错了什么?我能得到一点帮助吗?谢谢! 注意:我的问题不是关于给定的错误。

  • 我的错误日志从nginx一直说: [错误]82305#0:*542243 connect()到unix:/var/run/php5 fpm。连接到上游时sock失败(146:连接被拒绝) 大约每30秒。然而,我的php-fpm日志在这个错误中没有显示任何内容。只有nginx显示日志。php-fpm的nginx配置如下: 编辑:刚刚为nginx和php fpm添加了完整配置: php fpm:

  • 我已经被困在导出UTF-8 CSV与Windows Excel上显示乱码文本的汉字好几天了。我使用PHP,已经添加了BOM字节标记,并尝试编码,但没有运气。 它们在记事本、谷歌电子表格甚至Mac数字上都能很好地打开。但不是在客户要求的Excel上。使用记事本打开时,编码显示为UTF-8。如果我手动将其更改为UTF-8并保存,该文件将在Excel上正常打开。 似乎BOM字节标记不会保存在输出中,因为