[docker]创建tomcat docker镜像

mkdir tomcat8.0_jdk1.8

cd tomcat8.0_jdk1.8

touch Dockerfile run.sh

下载tomcat8.0 jdk1.8,解压

 Dockerfile

FROM sshd:dockerfile
#设置继承自用户创建的sshd镜像
MAINTAINER docker_user (user@docker.com)
#下面是一些创建者的嘉本信息
#设置环境变量, 所有操作都是非交互式的
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update
RUN apt-get install -y tzdata
RUN ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/Shanghai" > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata
#注意这里要更改系统的时区设置, 因为在Web 应用中经常会用到时区这个系统变量, 默认ubuntu的设置会让你的应用程序发生不可思议的效果哦
#安装跟tomcat用户认证相关的软件
RUN apt-get install -yq --no-install-recommends wget pwgen ca-certificates && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*
#设置tomcat的环境变值, 若读者有其他的环境变量需要设置, 也可以在这里添加
ENV CATALINA_HOME /tomcat
ENV JAVA_HOME /jdk
#复制tomcat 和jdk文件到镜像中
ADD apache-tomcat-8.5.38 /tomcat
ADD jdk1.8.0_201 /jdk
ADD create_tomcat_admin_user.sh /create_tomcat_admin_user.sh
ADD run.sh /run.sh
RUN chmod +x /*.sh
RUN chmod +x /tomcat/bin/*.sh
EXPOSE 8080
CMD ["/run.sh"]

 

 create_tomcat_admin_user.sh

#!/bin/bash
 
if [ -f /.tomcat_admin_created ]; then
    echo "Tomcat 'admin' user already created"
    exit 0
fi

#generate password
PASS=${TOMCAT_PASS:-$(pwgen -s 12 1)}
_word=$( [ ${TOMCAT_PASS} ] && echo "preset" || echo "random" )


echo "=> Creating and admin user with a ${_word} password in Tomcat"
sed -i -r 's/<\/tomcat-users>//' ${CATALINA_HOME}/conf/tomcat-users.xml
echo '<role rolename="manager-gui"/>' >> ${CATALINA_HOME}/conf/tomcat-users.xml
echo '<role rolename="manager-script"/>' >> ${CATALINA_HOME}/conf/tomcat-users.xml
echo '<role rolename="manager-jmx"/>' >> ${CATALINA_HOME}/conf/tomcat-users.xml
echo '<role rolename="admin-gui"/>' >> ${CATALINA_HOME}/conf/tomcat-users.xml
echo '<role rolename="admin-script"/>' >> ${CATALINA_HOME}/conf/tomcat-users.xml
echo "<user username=\"admin\" password=\"${PASS}\" roles=\"manager-gui,manager-script,manager-jmx,admin-gui, admin-script\"/>" >> ${CATALINA_HOME}/conf/tomcat-users.xml
echo '</tomcat-users>' >> ${CATALINA_HOME}/conf/tomcat-users.xml
echo "=> Done!"
touch .tomcat_admin_created

echo "================================================================================"
echo "You can now configure to this Tomcat server using:"
echo ""
echo " admin:${PASS}"
echo ""
echo "================================================================================"

 

 run.sh

#!/bin/bash
if [ ! -f /.tomcat_admin_created ]; then
    /create_tomcat_admin_user.sh
fi
/usr/sbin/sshd -D &
exec ${CATALINA_HOME}/bin/catalina.sh run

docker build -t tomcat8.0:jdk1.8 .

docker run -d -P -v   tomcat8.0:jdk1.8

docker run -d -P -v /opt/modules/tomcat8.0_jdk1.8/logs:/tomcat/logs tomcat8.0:jdk1.8

 

解决bom导致bash无法执行的问题

cat -A create_tomcat_admin_user.sh

sed -i "s/\r//" create_tomcat_admin_user.sh

sed -i "s/^M//" create_tomcat_admin_user.sh

vi filename打开文件,执行 : set ff=unix 设置文件为unix,然后执行:wq,保存成unix格式

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值