关于镜像制作,可以在网上搜到很多相关资料,这里就不介绍了。(后面补充基本资料)
镜像push到阿里云容器镜像服务,就可以在聚石塔容器平台使用了(平台上的自定义镜像)。
阿里云容器镜像服务文档:点击查看。
聚石塔-资源视图-容器镜像服务:点击访问。
注意:
阿里云容器镜像服务登录用户名非淘宝nick,请从该页面(仓库详情页)直接拷贝登录命令。
阿里云容器镜像服务登录密码由镜像服务管理,非聚石塔账号的密码。
1)如果是第一次做应用发布的配置。
选择“高级设置”,并点击下一步,就可以选择自定义镜像了,并且可以做相关的配置。
2)如果之前做过了部署配置,可以新建或者/编辑部署配置,选择自定义镜像就行。
注意,登录密码并非淘宝账号密码。
第一次登录阿里云容器镜像服务的控制台,系统会生成一个初始登录密码。
如果初始密码忘记,可以在镜像服务控制台重置。
表象:部署日志,Started container xxx 紧接着 Back-off restarting failed container。
原因:说明容器运行完(docker run -d xxx)便退出了。K8S集群认为容器失败,尝试重新启动容器。
解决:重新打镜像,保证entrypoint或者cmd对应的进程不会退出。
例子:
Dockerfile
FROM centos:7 ADD jdk1.6.tar.gz /usr/local/ ENV JAVA_HOME /usr/local/jdk1.6.0_43/ ENV JRE_HOME $JAVA_HOME/jre ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH ENV PATH $JAVA_HOME/bin:$PATH ENV JAVA_FONTS $JAVA_HOME/jre/lib/fonts RUN mkdir -p /acs/user COPY start.sh /acs/user RUN chmod +x /acs/user/start.sh ENTRYPOINT /acs/user/start.sh
ENTRYPOINT启动脚本
#!/bin/sh # 还可以设置环境变量,读取JAVA_OPT 设置jvm参数 java -jar test.jar while : do sleep 60 done
启动脚本最后的while循环,保证当前进程不会退出。
见应用部署常见问题:点击查看。
官方镜像中的启动命令为 java ${JAVA_OPT} -jar ${JAR_DIR}/${JAR_NAME} & 。
注意,上传时不能直接上传要运行的jar包,因为部署时会默认做一次unzip解压。
举个例子,想运行hello-world.jar,可以将这个jar包打包成.zip文件。这样unzip后,hello-world.jar就会在/acs/code下了,那么环境变量就可以按照图中设置。
tomcat8已支持配置web.xml,重新选择镜像,或者新建部署配置。
其他tomcat官方镜像或者已经配置好的部署配置,增加一个文件挂载项就行:
官方镜像中,tomcat安装在/acs/user/tomcat,例如,想自定义web.xml,可以设置文件挂载。
注:其实同理,tomcat/conf或者bin下的其他文件,也可以通过增加文件挂载项的方式进行自定义配置。
php官方镜像中,配置文件在/acs/user/script/tpl目录,如果需要自定义.ini,php-fpm等文件,请设置文件挂载。例如: