# /opt/stacks/jenkins/docker-compose.yml # # SEGURETAT: Jenkins s'executa com a usuari jenkins (uid 1000), no com a root. # Per accedir a Docker des de pipelines, s'usa Docker-in-Docker (dind) o # s'afegeix l'usuari jenkins al grup docker del host (vegeu notes al final). services: jenkins: container_name: jenkins image: jenkins/jenkins:lts-jdk17 restart: unless-stopped # NO usar user: root — risc crític amb docker.sock muntat # L'uid 1000 és l'usuari jenkins per defecte de la imatge oficial environment: TZ: Europe/Madrid JAVA_OPTS: >- -Djenkins.install.runSetupWizard=true -Xmx512m -Xms256m volumes: - jenkins_home:/var/jenkins_home # Docker socket — NOMÉS si has fet: sudo usermod -aG docker # i has ajustat els permisos del socket (vegeu notes) # - /var/run/docker.sock:/var/run/docker.sock ports: - "8089:8080" # Web UI → via Nginx Proxy Manager - "50000:50000" # Agents Jenkins (JNLP) healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/login"] interval: 30s timeout: 10s retries: 5 start_period: 90s # Jenkins triga a arrencar networks: - shared_net volumes: jenkins_home: networks: shared_net: external: true name: shared_net