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:
相关推荐
jiayong232 小时前
DevOps体系详解01-核心概念与价值
运维·devops
jiayong232 小时前
DevOps体系详解02-技术架构与工具链
运维·架构·devops
pride.li3 小时前
开发板和Linux--nfs服务挂载
linux·运维·服务器
计算机小手4 小时前
一个带Web UI管理的轻量级高性能OpenAI模型代理网关,支持Docker快速部署
经验分享·docker·语言模型·开源软件
云泽8084 小时前
不止是命令:Linux 高频指令实战 + 芯片架构底层逻辑
linux·运维·服务器
坚持学习前端日记4 小时前
常见docker指令
docker·容器·eureka
j_xxx404_4 小时前
Linux:基础IO
linux·运维·服务器
小芳矶5 小时前
Dify本地docker部署踩坑记录
python·docker·容器
70asunflower5 小时前
阿里云无影云电脑 Docker 使用完全指南
阿里云·docker·云计算
angushine6 小时前
银河麒麟V10创建用户
运维