如何在构建镜像时编译代码

网易云支持使用代码构建自定义镜像,遇到一些需要编译的代码时可能在使用方式上有所不同,未来我们也将提供编辑服务器。目前需要一些特殊处理,本文以 Java 为例介绍如何在构建镜像时编译代码。

目前,你可以通过使用自定义 Dockerfile 直接在构建镜像时进行编译。以网易云官方镜像 tomcat 为例:

FROM  hub.c.163.com/public/tomcat:7.0.28
MAINTAINER netease
RUN apt-get update && apt-get install -y maven openjdk-7-jdk
COPY . ~/java
WORKDIR ~/java
RUN mvn package && cp -rf ~/java/target/robot-dt2/* /var/lib/tomcat7/webapps/ROOT/
ENTRYPOINT /etc/init.d/tomcat7 start

Note

1.在构建服务端进行编译,可能整体耗时较长,失败率较高。

2.我们也建议你搭建一个编译服务器来处理这种情况;

3.若可以接受,也可以在本地编译完成后,再推送。