Я хочу запустить 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, которую я пропускаю или что-то отсутствует в моей книге игр?