jenkins持续集成docker镜像构建

版权声明:wzhu https://blog.csdn.net/AndyMocan/article/details/82992720

镜像环境包括:

  • docker
  • docker-compose
  • java
  • tomcat
  • maven
  • sonar-scanner

Dockerfile:

FROM  ubuntu:16.04
MAINTAINER [email protected]
USER root
RUN echo 'deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse' > /etc/apt/sources.list && \
    echo 'deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse' >> /etc/apt/sources.list && \
    echo 'deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse' >> /etc/apt/sources.list && \
    echo 'deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse' >> /etc/apt/sources.list && \
    echo 'Asia/shanghai' > /etc/timezone && \
    apt-get update -y && \
    apt-get clean
# 安装 Docker
RUN apt-get -y install apt-transport-https ca-certificates curl software-properties-common && \
    curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add - && \
    add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" && \
    apt-get update -y && \
    apt-get install -y docker-ce
COPY daemon.json /etc/docker/daemon.json
# 安装 Docker Compose
WORKDIR /usr/local/bin
# RUN wget https://raw.githubusercontent.com/topsale/resources/master/docker/docker-compose
COPY docker-compose ./
RUN chmod +x docker-compose

# 安装 Java
RUN mkdir -p /usr/local/java
WORKDIR /usr/local/java
COPY jdk-8u152-linux-x64.tar.gz /usr/local/java
RUN tar -zxvf jdk-8u152-linux-x64.tar.gz && \
    rm -fr jdk-8u152-linux-x64.tar.gz && \
    mv jdk1.8.0_181 jdk1.8.0_152
#安装tomcat
RUN mkdir -p /usr/local/tomcat
WORKDIR /usr/local/tomcat
COPY apache-tomcat-8.5.32.tar.gz /usr/local/tomcat
RUN tar -zxvf apache-tomcat-8.5.32.tar.gz && \
    rm -fr apache-tomcat-8.5.32.tar.gz && \
    mv apache-tomcat-8.5.32/*  ./  && \
    rm -rf  apache-tomcat-8.5.32
COPY jenkins.war /usr/local/tomcat/webapps/
# 安装 Maven
RUN mkdir -p /usr/local/maven
WORKDIR /usr/local/maven
# RUN wget https://raw.githubusercontent.com/topsale/resources/master/maven/apache-maven-3.5.3-bin.tar.gz
COPY apache-maven-3.5.3-bin.tar.gz /usr/local/maven
RUN tar -zxvf apache-maven-3.5.3-bin.tar.gz && \
    rm -fr apache-maven-3.5.3-bin.tar.gz
COPY settings.xml /usr/local/maven/apache-maven-3.5.3/conf/settings.xml
#安装sonar-scanner
RUN mkdir -p /usr/local/sonar-scanner
WORKDIR /usr/local/sonar-scanner
ADD sonar-scanner-cli-3.2.0.1227-linux.zip /usr/local/sonar-scanner
RUN uzip sonar-scanner-cli-3.2.0.1227-linux.zip && \
    rm -rf sonar-scanner-cli-3.2.0.1227-linux.zip && \
    mv sonar-scanner-3.2.0.1227-linux/* ./ && \
    rm -rf  sonar-scanner-3.2.0.1227-linux
# 配置环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_152
ENV MAVEN_HOME /usr/local/maven/apache-maven-3.5.3
ENV CATALINA_BASE /usr/local/tomcat
ENV CATALINA_HOME /usr/local/tomcat
ENV PATH $PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin:$CATALINA_HOME/bin:/usr/local/sonar-scanner/bin
WORKDIR /
CMD ["/usr/local/tomcat/bin/catalina.sh","run"]

docker-compose.yml

version: '3.1'
services:
  jenkins:
    image: jenkins:2.138.1
    build:
      context: environment
      dockerfile: Dockerfile
    restart: always
    container_name: jenkins
    privileged: true
    volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - /usr/local/docker/jenkins:/root/.jenkins/
    - /root/.m2:/root/.m2
    - /usr/local/docker/sonar-scanner/conf:/usr/local/sonar-scanner/conf
    ports:
    - 9090:8080

猜你喜欢

转载自blog.csdn.net/AndyMocan/article/details/82992720