首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误: mkdir与chown不工作在Dockerfile (nginx与php-fpm)

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

Stack Overflow用户
提问于 2016-12-08 13:43:55
回答 1查看 3.3K关注 0票数 0

为了版本控制和安全性,我想将两个Dockerfile合并为一个,然后为运行rmdir和chown的.sock =>创建一个目录。没有rmdir和chown,如果运行端口:9000,我可以完美地构建码头。当我尝试在dockerfile中设置.sock目录时,dockerfile就会退出。下面的所有细节。谢谢你的帮助。

第一文件半

代码语言:javascript
复制
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。然后,所有这些都通过监督管理。

我在码头写作的帮助下建造了它

代码语言:javascript
复制
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授权与9000一起工作都很好。

但是我想和.sock谈谈。没有,所以我需要创建一个/目录,nginx可以在其中放置它。因此,在我的脑海里,我把我的码头文件放在末尾。

代码语言:javascript
复制
RUN set -xe \
        mkdir -p /var/run/php-fpm
        && chown www-data:www-data /var/run/php-fpm

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

回波'daemonize = no';echo 'www';echo‘聆听’=::9000;>使用缓存-> 609c93af398d步骤22 :运行set -xe mkdir -p /var/ RUN /php-fpm & chown www-data:www-data /var/run/php-fpm -->运行在de4b7443a82a + chown de4b7443a82a中:www-data/var/fpm/php- access :无法访问' /var/run/php-fpm ':没有这样的文件或目录错误: Service 'web‘故障构建:命令'/bin/sh -c set -xe mkdir -p /var/run/php-fpm & chown www-data:www-data /var/run/php‘返回一个非零代码:1

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-08 14:43:17

这一行有两个错误:

代码语言:javascript
复制
RUN set -xe \
    mkdir -p /var/run/php-fpm
    && chown www-data:www-data /var/run/php-fpm

首先,mkdir是一个没有&&分隔符的集合的arg。第二个问题是,&& chown ...被视为dockerfile命令,因为上一行结束时没有\。下面是经过修正的语法:

代码语言:javascript
复制
RUN set -xe \
 && mkdir -p /var/run/php-fpm \
 && chown www-data:www-data /var/run/php-fpm
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41040976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档