Problem
Der Server wird gestartet mit:
sudo docker-compose up --detach
Dadurch werden die Logfiles mit dem User root geschrieben und ich kann sie mit meinem User ingo nicht lesen.
Auf der Console kann ich das leicht mit einem vorangestellten sudo lösen, aber um mal eben schnell in die Logfiles rein zu schauen würde ich gerne mein graphisches Tool WinSCP verwenden
Lösung
Man kann Docker / Docker Compose mit einem User starten und mit dem würden dann vermutlich auch die Logfiles geschrieben werden.
Als ich das mit einem Tomcat Image getestet hatte, ist es daran gescheitert, dass mit meinem User ingo auf bestimmte Verzeichnisse im Container nicht zugegriffen werden konnte.
Gelöst habe ich es dann so, dass ich nicht den User, oder User und Gruppe, gesetzt habe, sondern nur die Gruppe.
So wird mit dem root User gearbeitet, die Dateien gehören dem User root und für die gesetzte Gruppe sind sie lesbar.
Mein User muss natürlich ebenfalls in der Gruppe sein.
Gruppe anlegen:
sudo groupadd -g 1001 logfilegroup
Die Group ID ist relativ willkürlich gesetzt. Eigentlich hatte ich groupadd ohne das -g Flag aufgerufen und dann mit cat /etc/group die Group ID rausgesucht. Hier wollte ich das Statement mit explizitem setzen der Group ID hinschreiben, da ich es auch im Projekt verwendet hatte, um auf jedem Server die selbe Group ID zu haben.
User der Gruppe hinzufügen:
sudo usermod --append --groups logfilegroup ingo
Mit den Befehlen groups oder id kann man die Gruppen seines Users sehen, die neue logfilegroup wird aber erst in einer neuen Shell hinzugefügt. Also entweder die Shell schließen und neu öffnen, oder mit su ingo weiter arbeiten.
ingo$ sudo usermod --append --groups logfilegroup ingo ingo$ groups ingo adm ingo$ su ingo Password: ingo$ groups ingo adm logfilegroup
Docker Compose File:
Im Docker Compose File muss die Group ID gesetzt werden, mit dem Namen der Gruppe geht es nicht.
version: "3.2" services: melba-web: image: tomcat:10.1.18-jre21 # https://hub.docker.com/_/tomcat restart: always container_name: myapp-tomcat user: :1001 ports: - "8080:8080" environment: - _JAVA_OPTIONS=-Duser.language=de -Duser.country=DE volumes: - ./log/tomcat:/usr/local/tomcat/logs
sudo docker-compose up --detach ls -lisah log/tomcat/* 4211764 4.0K drwxr-xr-x 2 ingo ingo 4.0K Feb 8 16:52 . 4211762 4.0K drwxr-xr-x 4 ingo ingo 4.0K Feb 5 16:42 .. 4205212 24K -rw-r----- 1 root logfilegroup 24K Feb 8 16:21 catalina.2024-02-08.log 4211758 28K -rw-r----- 1 root logfilegroup 24K Feb 8 16:58 localhost_access_log.2024-02-08.txt