Erro de alocação de memória Java dentro de um contêiner Docker quando a máquina host está executando o Alpine Linux

2

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?

    
por Tom 16.06.2018 / 18:37

0 respostas