我尝试更 retrofit 载我的 Docker 卷的用户,但执行此操作的是“root”用户,而不是“安全用户”。 知道如果我在 Dockerfile 中执行“chown -R/var/www”,这将不起作用,因为挂载点尚不存在。 我该怎么做才能更改用户挂载点?
我的 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
我的 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;"]
还有我的代码前端/Dockerfile:
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
...
关于nginx - docker 组成 : volumes and user,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41759100/