Nginx Docker compose:卷和用户

Nginx Docker compose:卷和用户,nginx,docker,docker-compose,dockerfile,Nginx,Docker,Docker Compose,Dockerfile,我尝试更改装载Docker卷的用户,但执行此操作的是“root”用户,而不是“safe user”。 知道如果我在Dockerfile中执行一个“chown-R/var/www”,这一个将不起作用,因为挂载点还不存在。 如何更改用户装载点 My docker-compose.yml: version: '2' services: code-front: build: context: ./code-front/ container_name: code-front

我尝试更改装载Docker卷的用户,但执行此操作的是“root”用户,而不是“safe user”。 知道如果我在Dockerfile中执行一个“chown-R/var/www”,这一个将不起作用,因为挂载点还不存在。 如何更改用户装载点

My docker-compose.yml:

version: '2'
services:
  code-front:
    build:
      context: ./code-front/
    container_name: code-front
    volumes:
      - $HOME/web/IV3/code-front:/var/www/

  nginx-front:
    build:
      context: ./nginx-front/
    container_name: nginx-front
    ports:
      - 8000:80
    volumes_from:
      - code-front
My nginx front/Dockerfile:

FROM nginx

# ====================================================================
#  Installation des differents paquets nécéssaire au bon 
#   fonctionnement du container (NodeJs 6.x, sudo, ...)
# ====================================================================
RUN apt-get update -y && apt-get upgrade -y && \
    apt-get install -y curl && \
    curl -sL https://deb.nodesource.com/setup_6.x | bash && \
    apt-get install -y nodejs && \
    apt-get install -y sudo && \
    apt-get install -y git

# ====================================================================
#           Configuration de NGINX
# ====================================================================
COPY interface_voyant_v3.conf /etc/nginx/conf.d/
RUN rm /etc/nginx/conf.d/default.conf

# ====================================================================
#                  Creation et configuration du user
# ====================================================================
RUN groupadd -r safe-group && \
    useradd -r -m -g safe-group safe-user

RUN usermod -u 1000 safe-user

RUN chown safe-user:safe-group /usr/bin/nodejs && \
        chmod 774 /usr/bin/nodejs

RUN chown safe-user:safe-group /usr/bin/node && \
        chmod 774 /usr/bin/node

RUN chown safe-user:safe-group /usr/bin/npm && \
    chmod 774 /usr/bin/npm

RUN chown safe-user:safe-group /usr/sbin/nginx && \
    chmod 774 /usr/sbin/nginx

RUN mkdir /var/www/ && \
    chown -R safe-user:safe-group /var/www/

RUN echo '%safe-group ALL=NOPASSWD:/usr/sbin/nginx' >> /etc/sudoers

RUN echo 'cd /var/www' >> /home/safe-user/.bashrc

EXPOSE 80

USER safe-user
CMD ["sudo", "nginx", "-g", "daemon off;"]
FROM busybox:glibc

VOLUME /var/www
和我的代码前端/Dockerfile:

FROM nginx

# ====================================================================
#  Installation des differents paquets nécéssaire au bon 
#   fonctionnement du container (NodeJs 6.x, sudo, ...)
# ====================================================================
RUN apt-get update -y && apt-get upgrade -y && \
    apt-get install -y curl && \
    curl -sL https://deb.nodesource.com/setup_6.x | bash && \
    apt-get install -y nodejs && \
    apt-get install -y sudo && \
    apt-get install -y git

# ====================================================================
#           Configuration de NGINX
# ====================================================================
COPY interface_voyant_v3.conf /etc/nginx/conf.d/
RUN rm /etc/nginx/conf.d/default.conf

# ====================================================================
#                  Creation et configuration du user
# ====================================================================
RUN groupadd -r safe-group && \
    useradd -r -m -g safe-group safe-user

RUN usermod -u 1000 safe-user

RUN chown safe-user:safe-group /usr/bin/nodejs && \
        chmod 774 /usr/bin/nodejs

RUN chown safe-user:safe-group /usr/bin/node && \
        chmod 774 /usr/bin/node

RUN chown safe-user:safe-group /usr/bin/npm && \
    chmod 774 /usr/bin/npm

RUN chown safe-user:safe-group /usr/sbin/nginx && \
    chmod 774 /usr/sbin/nginx

RUN mkdir /var/www/ && \
    chown -R safe-user:safe-group /var/www/

RUN echo '%safe-group ALL=NOPASSWD:/usr/sbin/nginx' >> /etc/sudoers

RUN echo 'cd /var/www' >> /home/safe-user/.bashrc

EXPOSE 80

USER safe-user
CMD ["sudo", "nginx", "-g", "daemon off;"]
FROM busybox:glibc

VOLUME /var/www

谢谢你的帮助

不要更改docker-compose.yml中的任何内容

...
volumes:
  - $HOME/web/IV3/code-front:/var/www/
...
首先创建目录&在nginx front/Dockerfile中创建装载点之前更改所有权

...
RUN mkdir -p /var/www ; chown -R safe-user:safe-user /var/www
VOLUME /var/www
...