Eu quero rodar o Jenkins em um container onde minha máquina host está rodando o Alpine Linux.
Eu tenho um playbook Ansible que inicia o contêiner Jenkins. No entanto, o contêiner sai assim que é iniciado. Acredito que o problema esteja relacionado a iniciar o contêiner em minha máquina host executando o 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
Quando executo docker ps -a
, vejo que o contêiner do docker saiu.
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
Eu vejo os logs com docker logs jenkins
para ver que o java não alocou memória:
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
Eu tentei configurar a memória, mas acho que ela está relacionada a eu estar executando o contêiner docker no Alpine Linux. O contêiner é iniciado localmente no OSX. Minha máquina Host tem 15G livre do 16G disponível.
Existe uma opção Java que estou perdendo ou algo faltando no meu manual?
Tags java docker ansible alpine-linux