Ошибка выделения памяти Java внутри контейнера Docker, когда хост-компьютер работает под управлением Alpine Linux

336
Tom

Я хочу запустить Jenkins в контейнере, где на моей хост-машине установлен Alpine Linux.

У меня есть Ansible playbook, который запускает контейнер Jenkins. Тем не менее, контейнер выходит, как только он запускается. Я считаю, что проблема связана с запуском контейнера на моей хост-машине под управлением Alpine Linux.

- 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 

Когда я бегу, docker ps -aя вижу, что Docker-контейнер вышел.

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 

Я смотрю журналы с, docker logs jenkinsчтобы увидеть Java не удалось выделить память:

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 

Я пытался установить память, но я думаю, что это связано с тем, что я запускаю контейнер докера в Alpine Linux. Контейнер запускается локально в OSX. Мой хост-компьютер имеет 15G бесплатно из доступных 16G.

Есть ли опция Java, которую я пропускаю или что-то отсутствует в моей книге игр?

2

0 ответов на вопрос

Похожие вопросы