Läuft nginx als nicht-root-in Docker-container gibt permission denied Fehler
Habe ich Folgendes Dockerfile
FROM ubuntu:14.04
EXPOSE 8000
# Install nginx
RUN apt-get update -q \
&& apt-get install --no-install-recommends --no-install-suggests -y -q \
nginx \
&& rm -rf /var/lib/apt/lists/*
COPY ./nginx.conf /etc/nginx/
COPY ./index.html /usr/share/nginx/test/
RUN groupadd -r webgroup \
&& useradd -r -m -g webgroup webuser \
&& touch /run/nginx.pid \
&& chown -R webuser:webgroup /var/log/nginx /var/lib/nginx /run/nginx.pid
USER webuser
CMD nginx
Wenn ich es bekomme ich Permission denied auf /var/log/nginx
:
mikhails-mbp:test-docker-nginx mkuleshov$ docker run -p 8000:8000 mytest
nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied)
2016/10/02 17:02:51 [emerg] 5#0: open() "/var/log/nginx/access.log" failed (13: Permission denied)
Wenn ich mich in den container mit der bash sehe ich:
webuser@d190146a0e8d:/var/log/nginx$ ls -la
total 8
drwxr-x--- 2 webuser webgroup 4096 Jun 2 15:16 .
drwxrwxr-x 8 root syslog 4096 Oct 2 17:02 ..
Wie ist es möglich? Während der oben genannten Sitzung, an der ich auch nicht erstellen kann Dateien unter diesem Benutzer.
Sache, die geholfen: Entfernen der /var/log/nginx
und neu es wieder. Aber ich habe keine Ahnung, warum dies geschieht.
Gibt es keine SELinux.
Hat jemand begegnet der so etwas oder ist es etwas, was ich falsch mache?
P. S. Hier ist docker info
wenn es helfen kann
mikhails-mbp:test-docker-nginx mkuleshov$ docker info
Containers: 179
Running: 0
Paused: 0
Stopped: 179
Images: 901
Server Version: 1.11.2
Storage Driver: aufs
Root Dir: /mnt/sda1/var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 1109
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge null host
Kernel Version: 4.4.12-boot2docker
Operating System: Boot2Docker 1.11.2 (TCL 7.1); HEAD : a6645c3 - Wed Jun 1 22:59:51 UTC 2016
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 1.955 GiB
Name: default
ID: 3K5S:3QBN:BXGY:FASS:VG6P:D4CS:UXRK:GYXB:HJQG:SIQH:F6KQ:N4BN
Docker Root Dir: /mnt/sda1/var/lib/docker
Debug mode (client): false
Debug mode (server): true
File Descriptors: 15
Goroutines: 32
System Time: 2016-10-02T17:08:51.355144074Z
EventsListeners: 0
Username: mkuleshov
Registry: https://index.docker.io/v1/
Labels:
provider=virtualbox
P. P. S. Hier ist ein test-repo mit configs für diesen Fall: https://github.com/aides/test-docker-nginx
- Haben Sie nicht erhalten diese Warnmeldung beim erstellen des Bildes:
[warn] 7#0: the "user" directive makes sense only if the master process runs with super-user privileges
- Diese Warnung erscheint, wenn ich habe 'user' - Direktive in der
nginx.conf
. Hier ich bin mit den master-Prozess als nicht-super-user und ich don T haben eine 'user' - Direktive in dernginx.conf
. Ich bin mir auch nicht sicher, ich bin nicht falsch hier, so dass alle Kommentare sind willkommen.
InformationsquelleAutor Aides | 2016-10-02
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wahrscheinlich hinzufügen der Benutzer in die adm-Gruppe lösen Ihr Problem.
Versuchen sudo usermod -aG adm webuser
Mehr details: https://askubuntu.com/questions/421684/cant-access-apache-error-logs