jenkins持續整合docker映象構建
阿新 • • 發佈:2018-11-21
映象環境包括:
- 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