Java-Speicherzuweisungsfehler in einem Docker-Container, wenn auf dem Host-Computer Alpine Linux ausgeführt wird

377
Tom

Ich möchte Jenkins in einem Container ausführen, in dem auf meinem Hostcomputer Alpine Linux ausgeführt wird.

Ich habe ein Ansible-Playbook, das den Jenkins-Container startet. Der Container wird jedoch sofort nach dem Start beendet. Ich glaube, das Problem hängt mit dem Starten des Containers auf meiner Hostmaschine zusammen, auf der Alpine Linux läuft.

- name: pull jenkins image docker_image: name: jenkins/jenkins tag: lts-alpine  - name: create jenkins container docker_container: name: jenkins image: "jenkins/jenkins:lts-alpine" state: started env: JAVA_OPTS: "-Xmx300m" memory: 500M kernel_memory: 500M ports: - 8080:8080 - 50000:50000 volumes: - jenkins:/var/jenkins_home:rw 

Wenn ich renne, docker ps -akann ich sehen, dass der Docker-Container beendet wurde.

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 523f107cb861 jenkins/jenkins:lts-alpine "/sbin/tini -- /usr/…" 28 seconds ago Exited (1) 27 seconds ago jenkins 

Ich schaue mir die Protokolle an, um docker logs jenkinszu sehen, dass Java keinen Speicher zugewiesen hat:

OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x000076cd5dda8000, 2555904, 1) failed; error='Operation not permitted' (errno=1) # # There is insufficient memory for the Java Runtime Environment to continue. # Native memory allocation (mmap) failed to map 2555904 bytes for committing reserved memory. # An error report file with more information is saved as: # /tmp/hs_err_pid7.log 

Ich habe versucht, den Speicher einzustellen, aber ich denke, es hängt damit zusammen, dass ich den Docker-Container in Alpine Linux betreibe. Der Container wird lokal unter OSX gestartet. Mein Host-Rechner hat 15G frei von den verfügbaren 16G.

Gibt es eine Java-Option, die ich vermisse oder etwas in meinem Playbook fehlt?

2

0 Antworten auf die Frage