帶Android環境的Jenkines容器(Docker)

上次在使用jenkines打包環境的時候,發現要想打包Android,須要添加環境,可是這樣的話每次配置很麻煩。並且沒有相關的Docker,遷移部署很麻煩。因此就編譯了一個Dockerfile.linux

編譯tomcat的Docker.

#基礎鏡像
FROM zhu260824/ubuntu-base:jdk8
#做者
MAINTAINER ZHULIN <871707394@qq.com>

ADD run.sh /run.sh
RUN chmod +x /*.sh
#這兒tomcat使用了本身改動過的版本,主要修改了tomcat的管理頁面的用戶名和密碼,這樣啓動後就能夠直接經過管理頁面部署war包了(manger默認密碼admin,admin)
RUN wget https://zhulin-nas.oss-cn-shanghai.aliyuncs.com/apache-tomcat-8.5.37.tar.gz
RUN tar -zxvf apache-tomcat-8.5.37.tar.gz
RUN mv apache-tomcat-8.5.37 /usr/lib
RUN rm -rf apache-tomcat-8.5.37.tar.gz

EXPOSE 22
EXPOSE 8080

CMD ["/run.sh"]
複製代碼

添加/run.sh,將tomcat添加爲開機啓動android

#!/bin/bash 
nohup sh /usr/lib/apache-tomcat-8.5.37/bin/catalina.sh run > tomcat.log 2>&1 & 

exec /usr/sbin/sshd -D

複製代碼

而後編譯dockerfiledocker

我編譯的版本shell

docker push zhu260824/ubuntu-base:tomcat8
複製代碼

運行apache

docker run -d --name ubuntutomcat -p 7100:22  -p 8080:8080 -v /your/maven:/mnt/maven -v /your/gradle:/mnt/gradle -v /your/jdk1.8.0_202:/mnt/jdk1.8.0_202 zhu260824/ubuntu-base:tomcat8
複製代碼
  • 這樣你的tomcat的環境就能夠了,啓動容器後使用http://ip:8080這樣就能夠訪問tomcat了,而且能夠經過manger部署war包
  • 羣暉中,能夠直接配置端口和文件映射使用,不須要使用命令

爲tomcat添加android環境和jenkins設置.

基於上面的tomcat編譯新的Dockerfileubuntu

#基礎鏡像
FROM zhu260824/ubuntu-base:tomcat8
#做者
MAINTAINER ZHULIN <871707394@qq.com>

ENV ANDROID_HOME=/mnt/android/android-sdk-linux
ENV PATH=$ANDROID_HOME/tools:$PATH
#jenkins基礎文件夾
VOLUME ["/root/.jenkins"]
#Android的SDK文件夾
VOLUME ["/mnt/android/android-sdk-linux"]

RUN rm -rf /etc/profile
ADD profile /etc/profile

EXPOSE 22
EXPOSE 8080

CMD ["/run.sh"]
複製代碼

因爲run.sh沒有作修改,因此無需添加run.sh,可是修改了profile文件,因此須要添加profiletomcat

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ "${PS1-}" ]; then
  if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi
export JAVA_HOME=/mnt/jdk1.8.0_202
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export M2_HOME=/mnt/maven
export GRADLE_HOME=/mnt/gradle
export ANDROID_HOME=/mnt/android/android-sdk-linux  
export PATH=$JAVA_HOME/bin:$M2_HOME/bin:$GRADLE_HOME/bin:$ANDROID_HOME/tools:$PATH
複製代碼

而後編譯dockerfilebash

我編譯的版本ssh

docker push zhu260824/ubuntu-base:android
複製代碼

運行maven

docker run -d --name ubuntuandroid -p 7100:22  -p 8080:8080 -v /your/maven:/mnt/maven -v /your/gradle:/mnt/gradle -v /your/jdk1.8.0_202:/mnt/jdk1.8.0_202 -v /your/android:/mnt/android/android-sdk-linux -v /your/jenkins:/root/.jenkins zhu260824/ubuntu-base:android
複製代碼
  • /root/.jenkins文件夾爲jenkins的工做文件夾,全部Jenkins相關文件都存在這裏,映射本地文件夾後,更換容器等操做,數據配置都不會丟失
  • /mnt/android/android-sdk-linux爲Android的sdk文件夾,android的SDK比較大,映射外部以後一次更新,多個容器,多個地方使用。
  • 配置好後,去jenkins官網下載war包,使用tomcat的管理頁面部署便可
  • 更新jenkins,只須要在tomcat的管理頁面卸載後,從新上傳便可
  • 這樣就輕鬆的部署使用jenkins了,不須要每次都各類配置,只需啓動容器,配置一下容器都端口和文件夾便可
  • 羣暉中,能夠直接配置端口和文件映射使用,不須要使用命令
相關文章
相關標籤/搜索