Jenkins integrado con MS Powershell para Linux - jenkins master
1.8K
Basado en la versión de https://github.com/matt9ucci/docker-jenkins-powershell
Para que sea mas facil utilizar scpriting de powershell en Jenkins
Basado en Imagen oficial de Jenkins. Instalación PowerShell desde los repositorios de Microsoft.
ARG jenkins_tag=latest
FROM jenkins/jenkins:${jenkins_tag}
USER root
# Instala herramientas necesarias, agrega repositorio de Microsoft y limpia
RUN apt-get update \
&& apt-get install -y curl gnupg lsb-release git apt-transport-https default-jdk openssh-server \
&& curl -sSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg \
&& echo "deb [signed-by=/usr/share/keyrings/microsoft-prod.gpg] https://packages.microsoft.com/repos/microsoft-debian-bookworm-prod $(lsb_release -cs) main" > /etc/apt/sources.list.d/microsoft.list \
&& apt-get update \
&& apt-get install -y powershell ansible \
&& rm -rf /var/lib/apt/lists/*
# Clonar scripts de ejemplo de PowerCLI
RUN git clone https://github.com/vmware/PowerCLI-Example-Scripts.git /usr/local/share/powershell/Modules/PowerCLI-Example-Scripts
# Instalar todos los módulos de PowerShell en un solo paso
RUN pwsh -Command "\
Install-Module -Name VMware.PowerCLI, posh-ssh, pswsman, Dell.Unity, PSDiscord, ImportExcel, vDocumentation -Scope AllUsers -Force -AllowClobber ; \
Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Scope AllUsers -Confirm:\$false"
# Configurar Git y SSH
RUN git config --global http.sslverify false \
&& mkdir -p /var/jenkins_home/.ssh /var/run/sshd \
&& chown -R 1000:1000 /var/jenkins_home
EXPOSE 22
# Volver al usuario jenkins
USER jenkins
services:
jenkins:
image: antelinfra/jenkins-powershell:latest
hostname: jenkins
restart: unless-stopped
privileged: true
user: jenkins
networks:
- jnk_net
ports:
- 8081:8080
- 2222:22
container_name: jenkins
environment:
- http_proxy=${HTTP_PROXY}
- https_proxy=${HTTP_PROXY}
- ftp_proxy=${HTTP_PROXY}
- no_proxy=${NO_HTTP_PROXY}
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- ${JENKINS_HOME}:/var/jenkins_home
- ${JENKINS_HOME}/.ssh:/var/jenkins_home/.ssh:rw
- ${JENKINS_HOME}/certs:/certs/client
- ${JENKINS_HOME}/var/run/docker.sock:/var/run/docker.sock
- ${JENKINS_HOME}/usr/local/bin/docker:/usr/local/bin/docker
networks:
jnk_net:
driver: bridge
sudo chown -R 1000:1000 ${JENKINS_HOME}
Latest
docker build --tag jenkins-powershell:latest .
Con versiones especificas
docker build --tag jenkins-powershell:2.73.2 --build-arg jenkins_tag=2.73.2 .
Latest efimera
docker run -d -p 8080:8080 -p 50000:50000 --rm antelinfra/jenkins-powershell:latest
Latest con volumenes
docker run -d -p 8081:8080 -p 50000:50000 --name jenkins-ps -v jenkins_home:/var/jenkins_home antelinfra/jenkins-powershell:latest
Jenkins version
docker run --rm antelinfra/jenkins-powershell:latest --version
Todas las caracteristicas disponibles en la imagen oficial de Jenkinsi estan disponibles en esta imagen
El siguiente ejemplo corre la la ultima version de contenedor latest efimera pasando JAVA_OPTS para no ejecutar la configuración de inicio:
docker run -d -p 8080:8080 -p 50000:50000 --rm --env JAVA_OPTS=-Djenkins.install.runSetupWizard=false antelinfra/jenkins-powershell:latest
Para mas información, ver la siguiente documentación:
Content type
Image
Digest
sha256:e7d6f8c83…
Size
900.6 MB
Last updated
over 1 year ago
docker pull antelinfra/jenkins-powershell