安装Docker(Windows)
这里使用Windows平台的Docker,使用的是Linux的内核
创建Dockerfile
在当前目录中创建一个Dockerfile文件,内容如下,同时在目录中准备apache-ant-1.10.5.tar,apache-maven-3.2.2.tar,jdk-8u201-linux-x64.tar.gz,node-v10.15.3-linux-x64.tar.xz等文件,根据需要可以使用其他包,根据文件名修改文件即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| FROM opensuse/leap:15 MAINTAINER zhangfulin_lazy@163.com WORKDIR /usr/local
RUN zypper update -y && zypper install -y perl gcc make libxml2 perl-XML-LibXML perl-XML-Parser net-snmp net-snmp-devel rpm rpm-build zip && zypper clean -a
ADD apache-ant-1.10.5.tar /usr/local ADD apache-maven-3.2.2.tar /usr/local ADD jdk-8u201-linux-x64.tar.gz /usr/local ADD node-v10.15.3-linux-x64.tar.xz /usr/local
ENV JAVA_HOME /usr/local/jdk1.8.0_201 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV NODE_HOME /usr/local/node-v10.15.3-linux-x64 ENV ANT_HOME /usr/local/apache-ant-1.10.5 ENV MAVEN_HOME /usr/local/apache-maven-3.2.2 ENV PATH $PATH:$JAVA_HOME/bin:$NODE_HOME/bin:$ANT_HOME/bin:$MAVEN_HOME/bin
CMD ["/bin/bash"]
|
当然也可以不用自己准备安装包,可以通过zypper命令去下载,但是JDK还是自己准备,我在官网找下载地址,现在需要我注册登录_(:3」∠)_。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| FROM opensuse/leap:15 MAINTAINER zhangfulin_lazy@163.com WORKDIR /usr/local
RUN zypper update -y \ && zypper install -y perl python gcc make libxml2 perl-XML-LibXML perl-XML-Parser net-snmp net-snmp-devel vim tar bzip2 zip wget rpm rpm-build \ && mkdir -p /usr/local/jdk /usr/local/mvn /usr/local/go /usr/local/ant /usr/local/nodejs \ && wget https://apache.osuosl.org/maven/maven-3/3.6.2/binaries/apache-maven-3.6.2-bin.tar.gz \ && tar -xzf apache-maven-3.6.2-bin.tar.gz -C /usr/local/mvn --strip-components=1 \ && wget --no-check-certificate https://dl.google.com/go/go1.13.3.linux-amd64.tar.gz \ && tar -zxvf go1.13.3.linux-amd64.tar.gz -C /usr/local/go --strip-components=1 \ && wget https://archive.apache.org/dist/ant/binaries/apache-ant-1.10.7-bin.tar.gz \ && tar -zxvf apache-ant-1.10.7-bin.tar.gz -C /usr/local/ant --strip-components=1 \ && wget https://nodejs.org/dist/v10.16.3/node-v10.16.3-linux-x64.tar.xz \ && xz -d node-v10.16.3-linux-x64.tar.xz \ && tar -xvf node-v10.16.3-linux-x64.tar -C /usr/local/nodejs --strip-components=1 \ && ln -s -f /usr/local/mvn/bin/mvn /usr/bin/ \ && ln -s -f /usr/local/go/bin/go /usr/bin/ \ && ln -s -f /usr/local/ant/bin/ant /usr/bin/ \ && ln -s -f /usr/local/nodejs/bin/node /usr/bin/ \ && ln -s -f /usr/local/nodejs/bin/npm /usr/bin/ \ && rm -f apache-maven-3.6.2-bin.tar.gz \ && rm -f go1.13.3.linux-amd64.tar.gz \ && rm -f apache-ant-1.10.7-bin.tar.gz \ && rm -f node-v10.16.3-linux-x64.tar \ && zypper clean -a
ADD jdk-8u201-linux-x64.tar.gz /usr/local
ENV JAVA_HOME /usr/local/jdk1.8.0_201 ENV CLASSPATH ${JAVA_HOME}/lib/ ENV PATH $PATH:${JAVA_HOME}/bin ENV MAVEN_HOME /usr/local/mvn ENV MAVEN_CONFIG /root/.m2 ENV ANT_HOME /usr/local/ant ENV NODE_HOME /usr/local/nodejs ENV GOROOT /usr/local/go
ENTRYPOINT [ "/bin/bash" ]
|
创建本地镜像
1
| docker build -t build-os:1.0 .
|
不要省略最后一个点了
提交镜像到仓库(可选)
根据镜像创建容器并挂载本地磁盘
1
| docker run -it --name=build-os -v <本地代码路径>:/usr/local/main -v <本地maven仓库路径>:/root/.m2/repository/ build-os:1.0
|
进入容器编译代码
1 2 3
| cd /usr/local/main
ant build-code
|
退出容器
直接退出容器:exit
退出后台运行:Ctrl+Q+P
下次使用容器