# Utilitza Alpine Linux com a imatge base (imatge molt lleugera) FROM alpine:3.23.4 # Actualitza els repositoris de paquets i instal·la les eines necessàries: # - git: Sistema de control de versions # - openssh: Servidor SSH per a connexions remotes # - openjdk21: Java Development Kit versió 21 # - bash: Shell interactiu (Alpine usa sh per defecte) # --no-cache: No emmagatzema els paquets per reduir la mida de la imatge RUN apk update && apk add --no-cache git openssh openjdk21 bash # Genera les claus SSH del servidor (RSA, DSA, ECDSA, ED25519) RUN ssh-keygen -A # Crea l'usuari 'jenkins' amb: # -D: Usuari del sistema (sense contrasenya de login) # -h /home/jenkins: Estableix la carpeta home # -s /bin/bash: Estableix bash com a shell per defecte RUN adduser -D -h /home/jenkins -s /bin/bash jenkins # Estableix la contrasenya 'jenkins' per a l'usuari jenkins RUN echo "jenkins:jenkins" | chpasswd # Exposa el port 22 (SSH) per a connexions remotes EXPOSE 22 # Comando per iniciar el servidor SSH en mode detached (-D) CMD ["/usr/sbin/sshd","-D"]