如何制作和使用Maven的Docker镜像

当使用GitLab CI的流水线功能时,可能需要新增项目打包的阶段,此时就要用到Maven或Gradle进行打包。本文将介绍如何以GitLab Runner的镜像为基础,构建集成Maven功能的Docker镜像,然后再简单介绍如何启动和使用Maven容器。

一、环境描述

1. 虚拟机配置

  • CPU:单核
  • 内存:2 GB
  • 硬盘:120 GB
  • IP:192.168.190.128

2. 操作系统

  • 版本:CentOS 7.4 x86_64 (1708)
  • 安装方式:Minimal

3. Docker

4. GitLab服务器

5. GitLab Runner

二、构建镜像

1. 创建Dockerfile文件

继续阅读如何制作和使用Maven的Docker镜像

如何制作和使用GitLab Runner的Docker镜像

GitLab Runner是一个开源项目,用来执行用户的任务,然后将执行结果返回给GitLab服务器。GitLab Runner可以和GitLab的CI/CD机制结合使用,后者是开源的持续集成/持续交付服务。本文将以自建的CentOS镜像为基础,构建GitLab Runner的Docker镜像,实现CI/CD服务的快速部署。

一、环境描述

1. 虚拟机配置

  • CPU:双核
  • 内存:4 GB
  • 硬盘:120 GB
  • IP:192.168.190.128

2. 操作系统

  • 版本:CentOS 7.4 x86_64 (1708)
  • 安装方式:Minimal

3. Docker

4. 基础镜像

5. GitLab

6. GitLab Runner

  • 版本:10.5.0
  • 安装方式:yum

二、构建镜像

1. 新建Dockerfile文件

继续阅读如何制作和使用GitLab Runner的Docker镜像

如何制作和使用GitLab的Docker镜像

虽然GitLab提供了官方的Docker镜像,但是并没有实现中文化,本文将基于官方的Dockerfile和配置脚本,整合GitLab中文社区的汉化包,介绍如何制作和使用中文版的GitLab镜像。

PS:本来打算以自建的CentOS 6.9镜像为基础构建GitLab镜像,这样就能实现完全自定义的GitLab镜像,但是在安装RPM包时遇到ruby_block[supervise_redis_sleep] action run的问题,导致安装进程卡死,目前尚未找到解决方案,因此本文决定基于官方的Dockerfile构建镜像。

一、环境描述

1. 虚拟机配置

  • CPU:双核
  • 内存:4 GB
  • 硬盘:120 GB
  • IP:192.168.190.128

2. 操作系统

  • 版本:CentOS 7.4 x86_64 (1708)
  • 安装方式:Minimal

3. Docker

4. GitLab

  • 版本:GitLab CE 10.5.3
  • 安装方式:OmniBus

二、下载omnibus-gitlab工程

继续阅读如何制作和使用GitLab的Docker镜像

深入理解 Java G1 垃圾收集器

本文首先简单介绍了垃圾收集的常见方式,然后再分析了 G1 收集器的收集原理,相比其他垃圾收集器的优势,最后给出了一些调优实践。

一、什么是垃圾回收

首先,在了解 G1 之前,我们需要清楚的知道,垃圾回收是什么?简单的说垃圾回收就是回收内存中不再使用的对象。

垃圾回收的基本步骤有 2 步:

  • Step-1:查找内存中不再使用的对象
  • Step-2:释放这些对象占用的内存

1. 查找内存中不再使用的对象

继续阅读深入理解 Java G1 垃圾收集器

G1垃圾收集器入门教程(8)——总结

在本教程中,你已经大致学习了包含在 Java JVM 中的 G1 垃圾收集器。首先,你学会了堆内存和垃圾收集器是如何成为任意 Java JVM 实现的关键组成部分的。接下来,你回顾了如何使用 CMS 收集器和 G1 收集器来进行垃圾回收的工作。然后,你还学习了 G1 的命令行开关和选项的相关知识,以及使用 G1 的最佳实践。最后,你学会了如何在 GC 日志文件中记录对象和数据的相关信息。

继续阅读G1垃圾收集器入门教程(8)——总结

G1垃圾收集器入门教程(7)——G1的垃圾收集日志

本教程涵盖的最后一个主题会介绍如何使用日志信息来分析 G1 收集器的性能。本节会提供一些选项和开关的快速概述,你可以用来收集输出至日志中的数据和信息。

设置日志详情

你可以将日志设置为三个不同的细节级别。

(1)-verbosegc

等同于-XX:+PrintGC开关,可以将日志的详细级别设置为 fine。示例输出:

继续阅读G1垃圾收集器入门教程(7)——G1的垃圾收集日志

G1垃圾收集器入门教程(6)——命令行选项和最佳实践

在本节中,我们将学习 G1 收集器的各种命令行选项。

命令行的基本用法

如果要启用 G1 收集器,那么可以使用-XX:+UseG1GC开关。

以下是一个启动 Java2Demo 程序的命令行示例,这个程序包含在下载得到的 JDK 演示和示例程序包之中:

java -Xmx50m -Xms50m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -jar
c:javademosdemojfcJava2DJava2demo.jar

关键的命令行开关

G1垃圾收集器入门教程(4)——回顾CMS垃圾收集器

并发标记清除(CMS)收集器(也被称为并发低暂停收集器)负责收集老年代的垃圾。CMS 在执行大部分的垃圾收集工作时会尝试和应用程序的线程并发工作,这样便能尽可能地减少由于垃圾收集而造成的停顿时间。通常,并发低暂停收集器不会复制或整理存活的对象。进行垃圾收集时,不会移动存活的对象。如果内存碎片的问题较为严重,那么可以分配一块更大的堆内存。

注意:年轻代的 CMS 收集器使用与并行收集器相同的算法。

CMS 收集阶段

继续阅读G1垃圾收集器入门教程(4)——回顾CMS垃圾收集器