docker

在本系列(一)中(https://www.cnblogs.com/huandada/p/9965771.html)的runner_tomcat.sh脚本有涉及到镜像的推送,本文主要记录整个镜像的制作。

镜像版本

由于应用需要图片的展示,故选用 tomcat:7.0.90-jre7-alpine 与 tomcat:8.0.53-jre8。

tomcat:8.0.53-jre8:流量管家在内的三个项目,没有图片应用

tomcat:7.0.90-jre7-alpine:其他项目

镜像优化

首先对镜像预先做优化,以下优化只针对于tomcat:7.0.90-jre7-alpine,此次优化所得的镜像普遍适用于多个项目

时间同步

docker与宿主机的时间同步:docker与宿主机的时区不一样,导致相差8小时。宿主机是CST,docker是UTC:

将宿主机的/usr/share/zoneinfo/Asia/Shanghai文件放置于docker的/etc/localtime下。

此时,date查看时间正确,但是查看日志的时间还是与date时间相差8h。

java日志时间同步:

在tomcat/bin/catalina.sh,添加

JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF8 -Duser.timezone=GMT+08"

tomcat启动时间优化

linux或者部分unix系统提供随机数设备是/dev/random 和/dev/urandom ,

两个有区别,urandom安全性没有random高,但random需要时间间隔生成随机数。jdk默认调用random。

将jdk1.x.x_xx/jre/lib/security/java.security 以下参数改为securerandom.source=file:/dev/./urandom 减少启动时间。

工作目录

所定义的工作目录为一进容器就所在的目录,alpine需要定义,另一个版本官方已经定义好了

定义环境变量与cmd

cmd会在容器启动一个进程,此进程没了,容器消亡,alpine需要定义,另一个版本官方已经定义好了

优化命令

建build目录,将需要的与改好的文件放在/root/build/下

mkdir /root/build/
cp /usr/share/zoneinfo/Asia/Shanghai /root/build/

创建Dockerfile

vim /root/build/Dockerfile
FROM tomcat:7.0.90-jre7-alpine
ADD Shanghai /etc/localtime
RUN sed -i '/cygwin=false/i\JAVA_OPTS=" -Dfile.encoding=UTF8 -Duser.timezone=GMT+08"' /opt/apache-tomcat-7.0.69/bin/catalina.sh \
&& sed -i 's/securerandom.source=file:\/dev\/random/securerandom.source=file:\/dev\/.\/urandom/g' /opt/jdk1.7.0_80/jre/lib/security/java.security
WORKDIR /opt/apache-tomcat-7.0.69
ENV PATH=/opt/apache-tomcat-7.0.69/bin:$PATH
CMD ["catalina.sh", "run"]

使用Dockerfile生成新镜像

cd /root/build/ && docker build -t tomcat:7.0.90-jre7-alpine-v1 .

应用镜像的生成

主要是放置数据库连接文件context.xml与war包

cd /test_project/test-backend/ && vim Dockerfile
FROM tomcat:7.0.90-jre7-alpine-v1
COPY test.war /opt/apache-tomcat-7.0.69/webapps/
COPY context.xml /opt/apache-tomcat-7.0.69/conf/

本系列(一)runner_tomcat.sh有根据此Dockerfile打包并推送到阿里云镜像服务器命令。

gitlab-ci + k8s 之docker (三)的更多相关文章

  1. .Net Core自动化部署系列(三):使用GitLab CI/CD 自动部署Api到Docker

    之前写过使用Jenkins实现自动化部署,最近正好没事研究了下GitLab的自动化部署,顺便记录一下. 使用GitLab部署我们需要准备两件事,第一个起码你得有个GitLab,自己搭建或者使用官方的都 ...

  2. k8s Gitlab CI/CD 之自动编译Docker镜像并推送到指定的Registry

    环境介绍: 说明 节点 ip 系统 Gitlab Server git.ds.com 10.0.1.179 CentOS 7.5.1804 Gitlab Runner   10.0.1.178 Cen ...

  3. Gitlab CI 自动部署 asp.net core web api 到Docker容器

    为什么要写这个? 在一个系统长大的过程中会经历不断重构升级来满足商业的需求,而一个严谨的商业系统需要高效.稳定.可扩展,有时候还不得不考虑成本的问题.我希望能找到比较完整的开源解决方案来解决持续集成. ...

  4. Ubuntu & GitLab CI & Docker & ASP.NET Core 2.0 自动化发布和部署(1)

    相关博文: Ubuntu 简单安装和配置 GitLab Ubuntu 简单安装 Docker Ubuntu Docker 简单安装 GitLab Ubuntu Docker 安装和配置 GitLab ...

  5. Ubuntu & GitLab CI & Docker & ASP.NET Core 2.0 自动化发布和部署(2)

    上一篇:Ubuntu & GitLab CI & Docker & ASP.NET Core 2.0 自动化发布和部署(1) 服务器版本 Ubuntu 16.04 LTS. 本 ...

  6. 【持续集成】GitLab CI + Docker 实现持续集成

    GitLab CI + Docker 实现持续集成 一.持续集成(Continuous Integration, CI)的基本概念 概述 在传统软件的开发中,代码的集成工作通常是在所有人都将工作完成后 ...

  7. Docker Gitlab CI 部署 Spring Boot 项目

    目前在学习这一块的内容,但是可能每个人环境都不同,导致找不到一篇博客能够完全操作下来没有错误的,所以自己也写一下,记录一下整个搭建的过程. Docker 的安装这里就不赘述了,基本上几行命令都可以了, ...

  8. Ubuntu Docker 安装和配置 GitLab CI 持续集成

    相关文章: Ubuntu Docker 简单安装 GitLab 劈荆斩棘:Gitlab 部署 CI 持续集成 目的:在 Ubuntu 服务器上,使用 Docker 安装和配置 GitLab Runne ...

  9. Windows 下 docker 部署 gitlab ci

    一.安装 1. 安装 docker Docker下载 注意:Windows 10 家庭版获取 之前的版本不能直接安装 Docker ,而是需要去安装 Docker Toolbox 我这里安装的是 Do ...

  10. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之flanneld网络介绍及部署(三)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.flanneld介绍 ...

随机推荐

  1. web建包创建类

    1.创建一个人类名

  2. CSS魔法堂:Flex布局

    前言  Flex是Flexible Box的缩写,就是「弹性布局」.从2012年已经面世,但由于工作环境的原因一直没有详细了解.最近工作忙到头晕脑胀,是要学点新东西刺激一下大脑,打打鸡血. Flex就 ...

  3. idea不显示gradle的视图解决办法

    选择build tool.找到gradle→Runner,把委托给IDE构建勾选,然后重新导入一次就好了.

  4. wordclock中文模式快一个小时怎么调整

    wordclock屏幕保护,设置为中文模式,显示的时间比系统时间要快一个小时,其实软件自带的配置文件可以设置调整到正常时间……   工具/原料   wordclock 方法/步骤     桌面上右键菜 ...

  5. Ubuntu安装WDCP遇到的无法便于错误解决方法

    WDCP v3.2安装 WDCP支持CentOS系统下安装,包括了32bit或者64bit,最新版本建议在6.x以上版本使用,源码安装命令为: wget http://dl.wdlinux.cn/la ...

  6. android自己定义控件之飞入飞出控件

    近期呢,本人辞职了.在找工作期间.不幸碰到了这个求职淡季,另外还是大学生毕业求职的高峰期,简历发了无数份却都石沉大海.宝宝心里那是一个苦啊! 翻着过去的代码,本人偶然找到了一个有意思的控件.那时本人还 ...

  7. bzoj1030【JSOI2007】文本生成器

    1030: [JSOI2007]文本生成器 Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 2891  Solved: 1193 [Submit][St ...

  8. FFmpeg: FFmepg中的sws_scale() 函数分析

    FFmpeg中的 sws_scale() 函数主要是用来做视频像素格式和分辨率的转换,其优势在于:可以在同一个函数里实现:1.图像色彩空间转换, 2:分辨率缩放,3:前后图像滤波处理.不足之处在于:效 ...

  9. Android Studio项目导入aar包报错

    最近在试着接入TrPay的sdk,根据它家文档需要导入它们的aar包(paysdk-release-1.2.2.aar). 在AS中怎么给安卓项目导入aar包,网上搜一下就能看到无非也就下面三步: 1 ...

  10. 【css】垂直居中的几种写法

    结构 <div class="vam"> <div class="vam-body">垂直居中</div> </div ...