Ich verwende TestContainer in Java -Tests. Um die Anwendung im Container zu konfigurieren, muss ich Konfigurationsdateien einstellen und montieren: Einige Dateien sind statisch. Daher minke ich sie mithilfe von ClasspatpatheSourcemapping beim Erstellen neuer Container:
Code: Select all
container.withClassPathResourceMapping(
"/path/to/res",
"/etc/app/config.name",
BindMode.READ_ONLY
)
Andere Dateien werden dynamisch generiert und können von App im Container überschrieben werden. Daher kopiere ich den Inhalt mit Copyfiletocontainer nach Containerstart:
Code: Select all
container.copyFileToContainer(
Transferable.of(bin /* byte[] */),
"/var/app/resource.name"
)
Die App wird in Container als App ausgeführt: App Benutzer und Gruppe, die in der Dockerfile .
definiert sind Und ich habe hier zwei ähnliche Probleme: < /p>
Betrieb erstellt ein verpasstes Verzeichnis, wenn nicht gefunden wird, z. ClassPath -Mapping für "/etc/app/config.name" erstellt "/etc/App/ Verzeichnis. Es erstellt diese Verzeichnisse jedoch als Root: Root Benutzer, sodass App nicht kann Erstellen Sie später neue Dateien in diesem Verzeichnis CopyFileTocontainer Erstellt Dateien als Root: root Benutzer, sodass die App nicht in diese Dateien schreiben kann. Chown -r/path Nach dem Start des Containers schlägt dieser Befehl fehl, da der Exec -Benutzer kein Root . Berechtigungen in Testkontainer?