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:
相关推荐
朱杰jjj16 分钟前
Docker容器中无法使用vim、vi命令处理
docker·容器·vim
朗晴23 分钟前
文本编辑器VIM的使用方法!
linux·运维·服务器
东林牧之25 分钟前
CICD[软件安装]:docker安装gitlab
docker·容器·gitlab
东林牧之31 分钟前
CICD[导航]、docker+gitlab+harbor+jenkins从安装到部署
docker·gitlab·jenkins
小林up40 分钟前
github push:ssh: connect to host github.com port 22
运维·ssh·github
梁bk4 小时前
[Nginx]反向代理和负载均衡
运维·nginx·负载均衡
(:满天星:)9 小时前
第31篇:块设备与字符设备管理深度解析(基于OpenEuler 24.03)
linux·运维·服务器·网络·centos
小陶来咯9 小时前
【仿muduo库实现并发服务器】Acceptor模块
运维·服务器
cui_hao_nan10 小时前
Docker后端部署
运维·docker·容器
ZZH1120KQ10 小时前
Linux系统安全及应用
linux·运维·系统安全