参考链接:
https://github.com/openshift/source-to-image/blob/master/docs/builder_image.md
http://blog.csdn.net/huqigang/article/details/78110233
1. 下载 source-to-image 最新版 解压 配置到path
https://github.com/openshift/source-to-image/releases
2. 创建 S2I Builder镜像
s2i create s2i-tomcat s2i-tomcat
3. 编辑Dockerfile
# s2i-tomcat
FROM openshift/base-centos7
MAINTAINER Rabbit <380303318@qq.com>
EXPOSE 8080
ENV TOMCAT_VERSION=8.5.24 \
MAVEN_VERSION=3.5.2
LABEL io.k8s.description="Platform for building and running JEE applications on Tomcat" \
io.k8s.display-name="Tomcat Builder" \
io.openshift.expose-services="8080:http" \
io.openshift.tags="builder,tomcat" \
io.openshift.s2i.destination="/opt/s2i/destination"
# Install Maven, Tomcat 8.5.24
RUN INSTALL_PKGS="tar java-1.8.0-openjdk java-1.8.0-openjdk-devel" && \
yum install -y --enablerepo=centosplus $INSTALL_PKGS && \
rpm -V $INSTALL_PKGS && \
yum clean all -y && \
(curl -v http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz | \
tar -zx -C /usr/local) && \
ln -sf /usr/local/apache-maven-$MAVEN_VERSION/bin/mvn /usr/local/bin/mvn && \
mkdir -p $HOME/.m2 && \
mkdir -p /tomcat && \
(curl -v http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz | tar -zx --strip-components=1 -C /tomcat) && \
rm -rf /tomcat/webapps/* && \
mkdir -p /opt/s2i/destination
# Add s2i customizations
ADD ./contrib/settings.xml $HOME/.m2/
# Copy the S2I scripts from the specific language image to $STI_SCRIPTS_PATH
COPY ./s2i/bin/ $STI_SCRIPTS_PATH
RUN chmod -R a+rw /tomcat && \
chmod a+rwx /tomcat/* && \
chmod +x /tomcat/bin/*.sh && \
chmod -R a+rw $HOME && \
chmod -R +x $STI_SCRIPTS_PATH && \
chmod -R g+rw /opt/s2i/destination
USER 1001
CMD $STI_SCRIPTS_PATH/usage
4. 在assemble 最后面添加
mvn -Dmaven.test.skip=true clean package
mv ./target/*.war /tomcat/webapps/
5. 在run 最后面添加
bash -c "/tomcat/bin/catalina.sh run"
6. 把项目代码上传到git
https://github.com/silentwu/s2i-tomcat
在阿里云镜像仓库中配置 代码地址构建镜像
7. 导入镜像到openshift
oc import-image registry.cn-hangzhou.aliyuncs.com/monkeyk/s2i-tomcat:8.5.24 -n openshift --confirm --insecure
为了让OpenShift识别出这个镜像是S2I的Builder镜像,需要编辑刚导入的Image Stream,添加注解“tags”
# oc edit is/s2i-tomcat -n openshift
添加如下内容:
tags:
- annotations:
description: 'Build and run Tomcat applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/silentwu/s2i-tomcat.git.'
iconClass: icon-wildfly
openshift.io/display-name: Tomcat 8.5.24
openshift.io/provider-display-name: 'Rabbit blog, http://blog.xianshiyue.com'
sampleRepo: 'https://gitee.com/silentwu/openshift-tomcat.git'
supports: 'tomcat:8.5.24,jee,java'
tags: 'builder,tomcat,java'
version: 8.5.24