背介绍:通过 Dockerfile将 centos7 + tomcat + jdk + jar工程 + 启动脚本 制作成一个可执行镜像

Dockerfile文件:

FROM centos:7

# 下载基础工具
RUN yum -y install net-tools vim*

# 设置 Dockerfile 变量
ENV PROJECT_HOME=/usr/local/mkdockerimg/tomcat-jdk-jar
ENV TOMCAT_HOME=/usr/local/mkdockerimg/tomcat-jdk-jar/apache-tomcat-8.5.82

# 复制 tomcat+jdk 到容器的 /usr/local/project
# ADD apache-tomcat-8.5.82.tar.gz /usr/local/mkdockerimg/tomcat-jdk-jar
# ADD jdk-8u341-linux-x64.tar.gz /usr/local/mkdockerimg/tomcat-jdk-jar
# COPY entrypoint.sh /usr/local/mkdockerimg/tomcat-jdk-jar
ADD apache-tomcat-8.5.82.tar.gz $PROJECT_HOME
ADD jdk-8u341-linux-x64.tar.gz $PROJECT_HOME
COPY entrypoint.sh $PROJECT_HOME

# 添加执行权限
# RUN chmod a+x /usr/local/mkdockerimg/tomcat-jdk-jar/*
RUN chmod a+x $PROJECT_HOME/*

# 设置环境变量
# ENV JAVA_HOME /usr/local/mkdockerimg/tomcat-jdk-jar/jdk1.8.0_341
# ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# ENV PATH $PATH:$JAVA_HOME/bin
ENV JAVA_HOME=$PROJECT_HOME/jdk1.8.0_341
ENV CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$PATH:$JAVA_HOME/bin

# mysql 配置(待配置)
ENV MYSQL_DRIVER=xxxxx
ENV MYSQL_HOST=xxxxx
ENV MYSQL_POST=xxxxx
ENV MYSQL_USERNAME=xxxxx
ENV MYSQL_PASSWORD=xxxxx
ENV MYSQL_DB=xxxxx

# redis 配置(待配置)
ENV REDIS_HOST=xxxxx
ENV REDIS_PORT=xxxxx
ENV REDIS_PASSWORD=xxxxx

# minio 配置(待配置)
ENV MINIO_ENDPOINT=xxxxx
ENV MINIO_ACCESSKEY=xxxxx
ENV SECRETKEY=xxxxx

# 添加项目
# COPY brinkidea-boot-0.0.1-SNAPSHOT.jar /usr/local/mkdockerimg/tomcat-jdk-jar/apache-tomcat-8.5.82/webapps
COPY brinkidea-boot-0.0.1-SNAPSHOT.jar $TOMCAT_HOME/webapps

# 设置工作目录(使用绝对路径)
WORKDIR /usr/local/mkdockerimg/tomcat-jdk-jar

# 挂载工作目录
# VOLUME ["/usr/local/mkdockerimg/tomcat-jdk-jar/apache-tomcat-8.5.82/webapps"]
VOLUME ["$TOMCAT_HOME/webapps"]

# 暴露端口
EXPOSE 8080

# 启动
ENTRYPOINT ["sh","-c","$PROJECT_HOME/entrypoint.sh start"]

通过 docker build 命令构建镜像,注意:所有相关文件需在同一个目录下
dokcer build -t 镜像名:版本 .

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐