Dockerfile构建Tomcat镜像(源码)
以下是一个简化的Dockerfile示例,用于构建一个包含Apache Tomcat的Docker镜像:
# 使用官方的Java镜像作为基础镜像
FROM openjdk:8-jdk-alpine
# 设置工作目录
WORKDIR /usr/local
# 定义Tomcat版本和SHA1校验和,这里需要替换为实际的下载链接和校验和值
ENV CATALINA_HOME /usr/local/tomcat
ENV CATALINA_BASE /usr/local/tomcat
ENV TOMCAT_MAJOR_VERSION 9
ENV TOMCAT_VERSION 9.0.62
ENV TOMCAT_SHA1 31d634799798ae4a9368fd0894f45ed4a457234a73392d6f97200b0566e010d
# 下载Tomcat,并校验完整性
RUN wget -q -O tomcat.tar.gz "http://www-us.apache.org/dist/tomcat/tomcat-$TOMCAT_MAJOR_VERSION/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz" \
&& echo "$TOMCAT_SHA1 tomcat.tar.gz" | sha1sum -c - \
&& tar -xvzf tomcat.tar.gz \
&& mv apache-tomcat-$TOMCAT_VERSION tomcat \
&& rm tomcat.tar.gz \
&& ln -s $CATALINA_HOME/bin/catalina.sh /usr/local/bin \
&& chmod +x /usr/local/bin/catalina.sh
# 暴露8080端口
EXPOSE 8080
# 设置容器启动时执行的命令
CMD ["catalina.sh", "run"]
这个Dockerfile使用了OpenJDK 8的Alpine Linux镜像作为基础,下载了Apache Tomcat的压缩包,并且通过校验其SHA1来确保下载内容的安全性。然后它解压缩了Tomcat压缩包,并创建了必要的符号链接和授予了执行权限。最后,它暴露了Tomcat的默认端口8080,并设置了容器启动时执行的命令。
评论已关闭