#!/bin/bash set -e if [ -z "$JENKINS_URL" ]; then echo 1>&2 "Erro: JENKINS_URL não foi informada." exit 1 fi if [ -z "$JENKINS_SECRET" ]; then echo 1>&2 "Erro: JENKINS_SECRET não foi informado." exit 1 fi if [ -z "$JENKINS_AGENT_NAME" ]; then JENKINS_AGENT_NAME="$(hostname)" fi if [ -z "$JENKINS_AGENT_WORKDIR" ]; then JENKINS_AGENT_WORKDIR="/home/jenkins/agent" fi # Inicia cron (limpeza periódica do docker) sudo service cron start # Sincroniza GID do Docker do Host com o container DOCKER_GID=$(stat -c '%g' /var/run/docker.sock) sudo groupmod -g $DOCKER_GID docker || true sudo usermod -aG docker jenkins sudo chmod 666 /var/run/docker.sock || true # Garante que jenkins é dono dos volumes montados sudo chown -R jenkins:jenkins "$JENKINS_AGENT_WORKDIR" 2>/dev/null || true sudo mkdir -p "$JENKINS_AGENT_WORKDIR" sudo chown -R jenkins:jenkins /home/jenkins/.npm 2>/dev/null || true sudo chown -R jenkins:jenkins /home/jenkins/.cache 2>/dev/null || true # Otimizações de performance do git git config --global core.preloadindex true git config --global gc.auto 256 git config --global fetch.parallel 0 # Configura o MinIO Client (mc) se credenciais foram fornecidas if [ -n "$MINIO_ACCESS_KEY" ] && [ -n "$MINIO_SECRET_KEY" ]; then echo "Configurando MinIO Client..." mkdir -p /home/jenkins/.mc cat > /home/jenkins/.mc/config.json <