上次在使用jenkines打包環境的時候,發現要想打包Android,須要添加環境,可是這樣的話每次配置很麻煩。並且沒有相關的Docker,遷移部署很麻煩。因此就編譯了一個Dockerfile.linux
#基礎鏡像
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編譯新的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
複製代碼