Dockerfile自建jenkins镜像

Dockerfile

bash 复制代码
FROM centos:centos7

WORKDIR /etc/yum.repos.d

RUN mkdir bak && mv ./*.repo bak/; \
    curl -o CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo; \
    sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo; \
    yum -y install epel-release.noarch bash-completion net-tools wget unzip  git freetype fontconfig; \
    mkdir /root/jenkins

WORKDIR /usr/local/

ADD ./apache-maven-3.9.5-bin.zip ./
ADD ./apache-ant-1.10.14-bin.tar.gz ./
ADD ./jdk-8u212-linux-x64.tar.gz ./

RUN unzip apache-maven-3.9.5-bin.zip


ENV MAVEN_HOME=/usr/local/apache-maven-3.9.5 \
    JAVA_HOME=/usr/local/jdk1.8.0_212 \
    CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/ \
    ANT_HOME=/usr/local/apache-ant-1.10.14 \
    PATH=${MAVEN_HOME}/bin:${ANT_HOME}/bin:${JAVA_HOME}/bin:${PATH}

RUN echo 'export PATH="${MAVEN_HOME}/bin:${ANT_HOME}/bin:${JAVA_HOME}/bin:${PATH}"' >> ~/.bashrc


WORKDIR /root/jenkins

COPY ./jenkins.war ./ 
COPY ./jenkins.sh  ./
COPY ./checkstyle-10.12.4-all.jar ./
COPY ./change_file/myConf.tar ./
COPY ./change_file/plugins.tar ./
COPY ./change_file/tools.tar ./

EXPOSE 8080
ENTRYPOINT [ "/bin/bash", "/root/jenkins/jenkins.sh" ]

jenkins.sh

bash 复制代码
#!/bin/bash
source /root/.bashrc
cd /root/jenkins && nohup java -jar -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true ./jenkins.war  &
sleep 5
pkill java 

tar -xf myConf.tar -C /root/.jenkins/
tar -xf plugins.tar -C /root/.jenkins/
tar -xf tools.tar -C /root/.jenkins/

java -jar -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true ./jenkins.war
bash 复制代码
docker build -t jenkins_test:2.190.2 .
docker commit -a jx -m 'jenkins_test' focused_vaughan my_jenkins:test

docker-compose.yml

bash 复制代码
version: '3'
services:
  jenkins:
    user: root
    restart: always
    image: devops_jenkins:2.190.2
    hostname: jenkins
    privileged: true
    container_name: jenkins
    networks:
      - jenkins
    environment:
      - LANG=en_US.utf8
      - TZ=Asia/Shanghai
    ports:
      - 8088:8080
      - 50000:50000
    volumes:
      - jenkins_home:/root/.jenkins
      - mvn_repository:/root/.m2/repository
      - mvn_conf:/usr/local/apache-maven-3.9.5/conf
    logging:
        options:
          max-size: "128M"
          max-file: "1"
    healthcheck:
         test: ["CMD","curl","-s","-f","http://localhost:50000"]
         interval: 30s
         timeout: 10s
         retries: 10
networks:
  jenkins:
volumes:
  jenkins_home:
  mvn_repository:
  mvn_conf:
相关推荐
虎头金猫4 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS4 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
AI职业加油站4 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
此冬歌咏4 天前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
玉&心4 天前
通过Arthas在线诊断K8S中的内存及JVM等使用情况
docker·k8s·arthas
xing-xing4 天前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
-梅4 天前
linux(8) 软硬链接
linux·运维·服务器
guo_wen_qiang4 天前
上传本地镜像到harbor中
docker·容器·持续部署
张洛闻Eren4 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
羑悻的小杀马特4 天前
Dockerfile 全景指南:从入门编写dockerfile到生产环境镜像优化实战,一步步带你从啃透制作指令到镜像制作落地!
docker·dockerfile·镜像制作