Na versão original do projeto é impossível inicializar os contâineres (docker-compose up -d --build --remove-orphans), aparecem vários erros. Obviamente, aparece um cada vez que você corrige o anterior rs, então bati bastante cabeça e levei umas horas até corrigir todos e fazer funcionar.
Seguem os erros que encontrei e o que fiz para corrigir, caso alguém esteja passando pelo mesmo problema:
Versão incompatível do Jenkins: necessária atualização
O plugin blueocean:1.25.5 é incompatível com a versão 1.303-400.v35c2d8258028) do github-api, necessário mudar a versão do github-api para uma compatível
O sistema impediu a instalação de pacotes Python no nível do sistema, foi necessário colocar a instalação do pip e venv dentro do dockerfile para que fosse criado um ambiente virtual que garantisse a execução isolada, além de ter que modificar a variável de ambiente PATH para garantir que o Python e o pip do ambiente virtual fossem usados.
numpy , flask, mlflow, joblib, flake8, autopepe8, todos eles estavam com versões bem antigas que estavam dando problemas de compatibilidade com outras bibliotecas do requirements.
Segue minha correção:
Dockerfile-jenkins
FROM jenkins/jenkins:lts
USER jenkins
# Instalação dos plugin necessário
RUN jenkins-plugin-cli --plugins blueocean:1.25.5 build-timestamp:1.0.3 timestamper:1.17 pollscm:1.3.1 github-api:1.321-488.v9b_c0da_9533f8
USER root
# Configurações de ambiente
ENV FLUENTD_HOST "fluentd"
ENV FLUENTD_PORT "24224"
ENV JAVA_OPTS -Djenkins.install.runSetupWizard=false
ENV JENKINS_URL "http://jenkins:10000"
ENV ACCESS_KEY ${ACCESS_KEY}
ENV SECRET_KEY ${SECRET_KEY}
# Instalar pacotes necessários para criar o ambiente virtual
RUN apt update && \
apt install -y python3 python3-pip python3-venv
# Criar um ambiente virtual
RUN python3 -m venv /usr/src/app/venv
# Garantir que o Python do ambiente virtual seja usado
ENV PATH="/usr/src/app/venv/bin:$PATH"
# Copiar requirements.txt para o container
COPY ./requirements.txt /usr/src/app/requirements.txt
# Instalar as dependências dentro do ambiente virtual
RUN pip install --no-cache-dir -r /usr/src/app/requirements.txt
# Copiar arquivos de configuração do Jenkins
COPY jenkins/1-configureJenkins.groovy /usr/share/jenkins/ref/init.groovy.d/1-configureJenkins.groovy
COPY jenkins/2-addAccessKeys.groovy /usr/share/jenkins/ref/init.groovy.d/2-addAccessKeys.groovy
requirements.txt
numpy==1.26.4
pandas==1.5.3
scikit-learn==1.2.2
flask==2.3.3
mlflow==2.3.2
joblib==1.3.2
lime==0.2.0.1
fluent-logger==0.10.0
bokeh==3.3.4
arrow==1.3.0
wickedhot==0.2.5
boto3==1.34.57
protobuf==4.25.3
# Testing Dependencies
requests-mock==1.11.0
flake8==7.0.0
flake8-print==5.0.0
autopep8==2.1.0
snakeviz==2.2.0
pytest==7.4.4
pytest-cov==4.1.0
coverage==7.4.4