mirror of
https://github.com/zhwei820/learn.lianglianglee.com.git
synced 2025-11-15 05:33:49 +08:00
fix img & index.html & .md.html
This commit is contained in:
@@ -12,9 +12,7 @@
|
||||
<!-- theme css & js -->
|
||||
<meta name="generator" content="Hexo 4.2.0">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="book-container">
|
||||
<div class="book-sidebar">
|
||||
<div class="book-brand">
|
||||
@@ -27,86 +25,53 @@
|
||||
<ul class="uncollapsible">
|
||||
<li><a href="/" class="current-tab">首页</a></li>
|
||||
</ul>
|
||||
|
||||
<ul class="uncollapsible">
|
||||
<li><a href="../">上一级</a></li>
|
||||
</ul>
|
||||
|
||||
<ul class="uncollapsible">
|
||||
<li>
|
||||
|
||||
|
||||
<a href="/极客时间/Java基础36讲.md.html">Java基础36讲.md.html</a>
|
||||
|
||||
<a href="/极客时间/Java基础36讲.md.html">Java基础36讲</a>
|
||||
</li>
|
||||
<li>
|
||||
|
||||
|
||||
<a href="/极客时间/Java错误示例100讲.md.html">Java错误示例100讲.md.html</a>
|
||||
|
||||
<a href="/极客时间/Java错误示例100讲.md.html">Java错误示例100讲</a>
|
||||
</li>
|
||||
<li>
|
||||
|
||||
|
||||
<a href="/极客时间/Linux性能优化.md.html">Linux性能优化.md.html</a>
|
||||
|
||||
<a href="/极客时间/Linux性能优化.md.html">Linux性能优化</a>
|
||||
</li>
|
||||
<li>
|
||||
|
||||
|
||||
<a href="/极客时间/MySQL实战45讲.md.html">MySQL实战45讲.md.html</a>
|
||||
|
||||
<a href="/极客时间/MySQL实战45讲.md.html">MySQL实战45讲</a>
|
||||
</li>
|
||||
<li>
|
||||
|
||||
|
||||
<a href="/极客时间/从0开始学微服务.md.html">从0开始学微服务.md.html</a>
|
||||
|
||||
<a href="/极客时间/从0开始学微服务.md.html">从0开始学微服务</a>
|
||||
</li>
|
||||
<li>
|
||||
|
||||
|
||||
<a href="/极客时间/代码精进之路.md.html">代码精进之路.md.html</a>
|
||||
|
||||
<a href="/极客时间/代码精进之路.md.html">代码精进之路</a>
|
||||
</li>
|
||||
<li>
|
||||
|
||||
<a class="current-tab" href="/极客时间/持续交付36讲.md.html">持续交付36讲.md.html</a>
|
||||
<a class="current-tab" href="/极客时间/持续交付36讲.md.html">持续交付36讲</a>
|
||||
|
||||
|
||||
</li>
|
||||
<li>
|
||||
|
||||
|
||||
<a href="/极客时间/程序员进阶攻略.md.html">程序员进阶攻略.md.html</a>
|
||||
|
||||
<a href="/极客时间/程序员进阶攻略.md.html">程序员进阶攻略</a>
|
||||
</li>
|
||||
<li>
|
||||
|
||||
|
||||
<a href="/极客时间/趣谈网络协议.md.html">趣谈网络协议.md.html</a>
|
||||
|
||||
<a href="/极客时间/趣谈网络协议.md.html">趣谈网络协议</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="sidebar-toggle" onclick="sidebar_toggle()" onmouseover="add_inner()" onmouseleave="remove_inner()">
|
||||
<div class="sidebar-toggle-inner"></div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function add_inner() {
|
||||
let inner = document.querySelector('.sidebar-toggle-inner')
|
||||
inner.classList.add('show')
|
||||
}
|
||||
|
||||
function remove_inner() {
|
||||
let inner = document.querySelector('.sidebar-toggle-inner')
|
||||
inner.classList.remove('show')
|
||||
}
|
||||
|
||||
function sidebar_toggle() {
|
||||
let sidebar_toggle = document.querySelector('.sidebar-toggle')
|
||||
let sidebar = document.querySelector('.book-sidebar')
|
||||
@@ -121,8 +86,6 @@
|
||||
content.classList.add('extend')
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function open_sidebar() {
|
||||
let sidebar = document.querySelector('.book-sidebar')
|
||||
let overlay = document.querySelector('.off-canvas-overlay')
|
||||
@@ -135,9 +98,7 @@ function hide_canvas() {
|
||||
sidebar.classList.remove('show')
|
||||
overlay.classList.remove('show')
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<div class="off-canvas-content">
|
||||
<div class="columns">
|
||||
<div class="column col-12 col-lg-12">
|
||||
@@ -765,7 +726,6 @@ $ git reset --hard C3 的 HASH 值
|
||||
</code></pre>
|
||||
<p>如果 feature-x 已经 push 到远端代码平台了,则远端分支也需要回滚:</p>
|
||||
<pre><code>$ git push -f origin feature-x
|
||||
|
||||
</code></pre>
|
||||
<p><strong>第二,集成分支上线前回滚</strong></p>
|
||||
<p><img src="http://lean.lianglianglee.com/%E6%9E%81%E5%AE%A2%E6%97%B6%E9%97%B4/assets/d9947d8f6f7f746414a18b81be5f3733.png" alt="img" /></p>
|
||||
@@ -1125,19 +1085,15 @@ $ git push origin master # 远端的 master 也被回滚。
|
||||
<p><img src="assets/9a95af6dfe491b66076f7085c5a64b6f.png" alt="img" /></p>
|
||||
<p>这段代码定义了 dev 和 prod 两个 profile(没有定义任何其他配置,实际使用中可按需定义任何配置),并且使用了 echo 插件验证 profile 是否生效,通过运行。</p>
|
||||
<pre><code>maven initialize –Pdev
|
||||
|
||||
</code></pre>
|
||||
<p>或</p>
|
||||
<pre><code>maven initialize –Pprod
|
||||
|
||||
</code></pre>
|
||||
<p>然后,可以看到输出:</p>
|
||||
<pre><code>[INFO] profiles.active = dev
|
||||
|
||||
</code></pre>
|
||||
<p>或</p>
|
||||
<pre><code>[INFO] profiles.active = prod
|
||||
|
||||
</code></pre>
|
||||
<p>其中, dev 是默认激活的,也就是说如果不填写任何 –P 参数,或者 –P 参数不为 dev 或者 prod,都会使用 dev 作为默认的 profile。</p>
|
||||
<p>这样在代码构建时,你就可以根据具体需要选择对应的 profile 了。</p>
|
||||
@@ -1788,7 +1744,6 @@ ADD java /usr/local/java
|
||||
<p>在上一篇文章《容器镜像构建的那些事儿》中,我介绍了构建镜像一个很重要的原则是:镜像要尽可能得小巧精简,因此我们没有在镜像中为用户安装太多的软件。但是,很多时候用户可能需要这些软件,于是我们就在平台上提供了环境选项的功能。</p>
|
||||
<p>比如,很多用户需要用到 Wget 软件,于是我们就在交付平台上提供了一个 “安装 Wget ” 的环境选项。其实,这个环境选项对应的就是一条 shell 命令:</p>
|
||||
<pre><code>yum install wget -y
|
||||
|
||||
</code></pre>
|
||||
<p>如果某次发布时,用户需要这个工具,可以勾选这个选项,那么就可以在构建镜像时作为参数传给构建系统。如果搭建系统判断出有这个参数,就将会其插入到规范的 Dockerfile 中,从而这个参数就可以被打到容器内部。</p>
|
||||
<p>环境选项虽然好用,但是只适合一些简单的需求,比如安装一些软件、更改一些配置等。而对一些复杂的需求,则需要创建一个叫作<strong>服务集市</strong>的功能。举个例子:</p>
|
||||
@@ -2442,7 +2397,6 @@ ADD java /usr/local/java
|
||||
<p>图 4 IDE 插件安装</p>
|
||||
<p>第四步:如果 SonarLint 的检查规则不能满足开发环境的要求,你可以执行相关的 mvn 命令,把检查结果吐到 Sonar 服务器上再看检查结果,命令如下:</p>
|
||||
<pre><code>mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar -f ./pom.xml -Dsonar.host.url=sonar 服务器地址 -Dsonar.login= 账号名称 -Dsonar.password= 账号密码 -Dsonar.profile= 检查规则的集合 -Dsonar.global.exclusions= 排除哪些文件 -Dsonar.branch= 检查的分支
|
||||
|
||||
</code></pre>
|
||||
<p>第五步:在 GitLab 的 Merge Request 中增加 Sonar 静态检查的环节,包括检查状态和结果等。</p>
|
||||
<p><img src="assets/8dae6234f5003bee410fca4ae9dfb3ca.png" alt="img" /></p>
|
||||
@@ -3315,7 +3269,6 @@ sudo EXTERNAL_URL="http://192.168.0.101" yum install -y gitlab-ee
|
||||
<li>配置文件 /etc/gitlab/gitlab.rb,包含所有 GitLab 的相关配置。邮件服务器、LDAP 账号验证,以及数据库缓存等配置,统一在这个配置文件中进行修改。 比如,你想要修改 GitLab 的外部域名时, 可以通过一条指令修改 gitlab.rb 文件:</li>
|
||||
</ol>
|
||||
<pre><code>external_url 'http://newhost.com'
|
||||
|
||||
</code></pre>
|
||||
<p>然后,执行 gitlab-ctl reconfigure 重启配置 GitLab 即可。</p>
|
||||
<p>关于 GitLab 更详细的配置,你可以参考<a href="https://docs.gitlab.com/omnibus/README.html#installation-and-configuration-using-omnibus-package">官方文档</a>。</p>
|
||||
@@ -3523,7 +3476,6 @@ end
|
||||
<li>安装 Java 环境</li>
|
||||
</ol>
|
||||
<pre><code> yum install java-1.8.0-openjdk-devel
|
||||
|
||||
</code></pre>
|
||||
<ol>
|
||||
<li>更新 rpm 源,并安装 Jenkins 2.138</li>
|
||||
@@ -3707,7 +3659,6 @@ yum install jenkins
|
||||
<h3><strong>Ansible 安装</strong></h3>
|
||||
<p>对于 Ansible 环境的准备,我推荐使用 pip 的方式安装。</p>
|
||||
<pre><code>sudo pip install Ansible
|
||||
|
||||
</code></pre>
|
||||
<p>安装完之后, 我们可以简单测试一下:</p>
|
||||
<ol>
|
||||
@@ -3721,7 +3672,6 @@ yum install jenkins
|
||||
<li>打通本机和测试机的 SSH 访问:</li>
|
||||
</ol>
|
||||
<pre><code>$ ssh-copy-id <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="402425302c2f392532002c2f23212c282f3334">[email protected]</a>
|
||||
|
||||
</code></pre>
|
||||
<ol>
|
||||
<li>尝试远程访问主机 10.1.77.79:</li>
|
||||
@@ -3964,12 +3914,10 @@ yum install jenkins
|
||||
<a href="/极客时间/程序员进阶攻略.md.html">下一页</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a class="off-canvas-overlay" onclick="hide_canvas()"></a>
|
||||
</div>
|
||||
<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script defer src="https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194" integrity="sha512-Gi7xpJR8tSkrpF7aordPZQlW2DLtzUlZcumS8dMQjwDHEnw9I7ZLyiOj/6tZStRBGtGgN6ceN6cMH8z7etPGlw==" data-cf-beacon='{"rayId":"709ba3bb2beafbdc","version":"2021.12.0","r":1,"token":"1f5d475227ce4f0089a7cff1ab17c0f5","si":100}' crossorigin="anonymous"></script>
|
||||
@@ -3978,11 +3926,9 @@ yum install jenkins
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-NPSEEVD756"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
|
||||
function gtag() {
|
||||
dataLayer.push(arguments);
|
||||
}
|
||||
|
||||
gtag('js', new Date());
|
||||
gtag('config', 'G-NPSEEVD756');
|
||||
var path = window.location.pathname
|
||||
@@ -3996,14 +3942,12 @@ yum install jenkins
|
||||
} else {
|
||||
setCookie("lastPath", path)
|
||||
}
|
||||
|
||||
function setCookie(cname, cvalue) {
|
||||
var d = new Date();
|
||||
d.setTime(d.getTime() + (180 * 24 * 60 * 60 * 1000));
|
||||
var expires = "expires=" + d.toGMTString();
|
||||
document.cookie = cname + "=" + cvalue + "; " + expires + ";path = /";
|
||||
}
|
||||
|
||||
function getCookie(cname) {
|
||||
var name = cname + "=";
|
||||
var ca = document.cookie.split(';');
|
||||
@@ -4013,7 +3957,5 @@ yum install jenkins
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user