Ich führe Docker 1.8.1 in OSX 10.11 über eine lokale Docker-Maschine VM aus.Falsche Volumenberechtigungen im Docker Container
Ich habe folgende Docker-compose.yml:
web:
build: docker/web
ports:
- 80:80
- 8080:8080
volumes:
- $PWD/cms:/srv/cms
Meine Dockerfile wie folgt aussieht:
FROM alpine
# install nginx and php
RUN apk add --update \
nginx \
php \
php-fpm \
php-pdo \
php-json \
php-openssl \
php-mysql \
php-pdo_mysql \
php-mcrypt \
php-ctype \
php-zlib \
supervisor \
wget \
curl \
&& rm -rf /var/cache/apk/*
RUN mkdir -p /etc/nginx && \
mkdir -p /etc/nginx/sites-enabled && \
mkdir -p /var/run/php-fpm && \
mkdir -p /var/log/supervisor && \
mkdir -p /srv/cms
RUN rm /etc/nginx/nginx.conf
ADD nginx.conf /etc/nginx/nginx.conf
ADD thunder.conf /etc/nginx/sites-enabled/thunder.conf
ADD nginx-supervisor.ini /etc/supervisor.d/nginx-supervisor.ini
WORKDIR "/srv/cms"
VOLUME "/srv/cms"
EXPOSE 80
EXPOSE 8080
EXPOSE 22
CMD ["/usr/bin/supervisord"]
Wenn ich alles laufen mit docker-compose up
alles gut funktioniert, sind meine Bände an die montierte Richtiger Platz.
Aber die Berechtigungen im bereitgestellten Ordner/srv/cms sehen falsch aus. Der Benutzer ist "1000" und die Gruppe ist "50" in dem Container. Der Webserver konnte keine Dateien in diesem Ordner erstellen, da er mit dem Benutzer "root" läuft.
Wenn es mit 'root' läuft, sollte es in der Lage sein, einen beliebigen Ordner zu schreiben. Gibt Ihre Supervisor-Konfiguration einen anderen Benutzer an? Ist "uid 1000" und "gid 50" der Benutzer auf Ihrem OS X? –