{"id":54,"date":"2021-05-23T17:32:28","date_gmt":"2021-05-23T09:32:28","guid":{"rendered":"https:\/\/blog.cauchyschwarz.com\/?p=54"},"modified":"2022-12-23T15:35:34","modified_gmt":"2022-12-23T07:35:34","slug":"gitlab%e7%ac%94%e8%ae%b0","status":"publish","type":"post","link":"https:\/\/blog.cauchyschwarz.com\/?p=54","title":{"rendered":"gitlab\u7b14\u8bb0"},"content":{"rendered":"\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 ez-toc-wrap-right counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a2cd53a5f838\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a2cd53a5f838\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=54\/#Gitlab%E5%AE%89%E8%A3%85\" >Gitlab\u5b89\u88c5<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=54\/#Gitlab%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90\" >Gitlab\u6301\u7eed\u96c6\u6210<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=54\/#%E9%80%89%E6%8B%A9ee%E7%89%88%E6%9C%AC\" >\u9009\u62e9ee\u7248\u672c<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=54\/#%E6%9C%BA%E5%99%A8%E9%87%8D%E5%90%AF%E5%90%8Egitlab%E4%B8%8D%E8%83%BD%E8%87%AA%E5%8A%A8%E5%90%AF%E5%8A%A8\" >\u673a\u5668\u91cd\u542f\u540egitlab\u4e0d\u80fd\u81ea\u52a8\u542f\u52a8<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=54\/#%E6%9C%BA%E5%99%A8%E9%87%8D%E5%90%AF%E5%90%8Egitlab-runner%E4%B8%8D%E8%83%BD%E8%87%AA%E5%8A%A8%E5%90%AF%E5%8A%A8\" >\u673a\u5668\u91cd\u542f\u540egitlab-runner\u4e0d\u80fd\u81ea\u52a8\u542f\u52a8<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=54\/#%E5%AE%89%E8%A3%85%E5%90%8E%E6%8A%A5%E9%94%99exit_status_0\" >\u5b89\u88c5\u540e\u62a5\u9519exit status 0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=54\/#%E8%AE%BE%E7%BD%AEroot%E5%B8%90%E5%8F%B7\" >\u8bbe\u7f6eroot\u5e10\u53f7<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=54\/#%E5%9C%A8docker%E4%B8%AD%E8%BF%90%E8%A1%8Cgitlab\" >\u5728docker\u4e2d\u8fd0\u884cgitlab<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=54\/#%E5%8F%82%E8%80%83\" >\u53c2\u8003<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=54\/#%E5%AE%89%E8%A3%85%E6%AD%A5%E9%AA%A4\" >\u5b89\u88c5\u6b65\u9aa4<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=54\/#gitlab%E8%BF%81%E7%A7%BB\" >gitlab\u8fc1\u79fb<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=54\/#%E5%8F%82%E8%80%83-2\" >\u53c2\u8003<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=54\/#%E5%A4%87%E4%BB%BD%E6%AD%A5%E9%AA%A4\" >\u5907\u4efd\u6b65\u9aa4<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=54\/#%E8%BF%81%E7%A7%BB%E5%90%8E%E6%97%A0%E6%B3%95%E5%88%A0%E9%99%A4%E9%A1%B9%E7%9B%AE\" >\u8fc1\u79fb\u540e\u65e0\u6cd5\u5220\u9664\u9879\u76ee<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=54\/#gitlab-runner\" >gitlab-runner<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=54\/#CICD\" >CICD<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/blog.cauchyschwarz.com\/?p=54\/#yml%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6\" >yml\u914d\u7f6e\u6587\u4ef6<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Gitlab%E5%AE%89%E8%A3%85\"><\/span><a href=\"https:\/\/about.gitlab.com\/install\/#ubuntu\">Gitlab\u5b89\u88c5<\/a><span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\u6309\u7167\u5b98\u7f51\u7684\u5b89\u88c5\u6b65\u9aa4\u64cd\u4f5c\u7ed3\u679c\u5931\u8d25\u4e86\uff0c\u5e72\u8106\u5728\u52a0\u5165gitlab\u5b98\u65b9\u6e90\u540e\u76f4\u63a5<code>sudo apt-get install gitlab-ee<\/code>\u7b97\u4e86\uff0c\u4ec0\u4e48<code>EXTERNAL_URL<\/code>\u90fd\u61d2\u5f97\u8bbe\u7f6e\u4e86\uff0c\u4f46\u662f\u7ed3\u679c\u4ecd\u7136\u662f\u5b89\u88c5\u5931\u8d25\uff0c\u62a5\u9519\u4fe1\u606f\u8bf4\u662f<code>gitlab-ctl reconfigure<\/code>\u5931\u8d25\uff0c\u4e8e\u662f\u5728<code>apt-get<\/code>\u5b89\u88c5\u5931\u8d25\u540e\u518d\u8fd0\u884c\u4e86\u4e00\u904d<code>gitlab-ctl reconfigure<\/code>\uff0c\u5c45\u7136\u5c31\u795e\u5947\u5730\u88c5\u597d\u4e86\uff0c\u771f\u662f\u65e0\u8bed\u3002<br>\u5b89\u88c5\u597d\u4e4b\u540e\u8bb0\u5f97\u518d\u53bb\u628agitlab\u7684\u76d1\u542c\u5730\u5740\u6539\u6210\u5c40\u57df\u7f51ip\uff0c\u4e0d\u8981\u7528127.0.0.1\u8fd9\u4e2a\u5730\u5740\uff0c\u4e0d\u7136\u540e\u9762\u8bbe\u7f6egitlab-runner\u9009\u4e86docker\u4f5c\u4e3aexecutor\u65f6\uff0cdocker\u662f\u8fde\u4e0d\u4e0agitlab\u7684\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Gitlab%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90\"><\/span>Gitlab\u6301\u7eed\u96c6\u6210<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\u5b89\u88c5\u597dgitlab\u4e4b\u540e\uff0c\u8fd8\u8981\u5b89\u88c5gitlab-runner\u6765\u6267\u884c\u6784\u5efa\u3001\u6d4b\u8bd5\u3001\u90e8\u7f72\u7b49\u4efb\u52a1\u3002\u8fd9\u91cc\u6ce8\u610fgitlab\u3001gitlab-runner\u3001\u548cdocker\u90fd\u8981\u6309\u7167\u76f8\u5e94\u5b98\u7f51\u7684\u5b89\u88c5\u6559\u7a0b\u5b89\u88c5\u5b98\u65b9\u7248\u672c\uff0c\u4e0d\u8981\u7528ubuntu\u6e90\u91cc\u81ea\u5e26\u7684\u7248\u672c\uff0c\u4e0d\u7136\u4f1a\u5751\u6b7b\u4f60\uff0c\u51fa\u73b0\u4e00\u4e9b\u83ab\u540d\u5947\u5999\u7684\u9519\u8bef\uff0c\u6bd4\u5982<a href=\"https:\/\/stackoverflow.com\/questions\/48891207\/gitlab-ci-build-failed-gitlab-runner-prebuilt-tar-xz-no-such-file-or-directory\">\u8fd9\u4e2a<\/a>\uff0c\u4e0d\u5b89\u88c5\u5b98\u65b9\u7248\u672c\u7684gitlab-runner\uff0c\u5373\u4f7f\u4f60\u6309\u7167stackoverflow\u4e0a\u7684\u8fd9\u4e2a\u56de\u7b54\u53bb\u6539\u4e86\u76f8\u5e94\u6587\u4ef6\u95ee\u9898\u4e5f\u4e0d\u4e00\u5b9a\u4f1a\u4fee\u590d\u3002<br>Gitlab\u7684ci\u811a\u672c\u7f16\u8f91\u4e5f\u662f\u633a\u5947\u602a\u7684\uff0c\u5728\u9875\u9762\u4e0a\u663e\u793a\u7684\u6837\u5b50\u548cyml\u6587\u4ef6\u91cc\u7684raw data\u6570\u636e\u4e0d\u4e00\u6837\uff0c\u4e0d\u77e5\u9053\u662f\u4e3a\u4ec0\u4e48\uff0c\u6700\u597d\u662f\u7528vim\u7b49\u7f16\u8f91\u5668\u81ea\u5df1\u5199\u597d\u4e86\u518d\u4f20\u4e0a\u53bb\u76f4\u63a5\u4f7f\u7528\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E9%80%89%E6%8B%A9ee%E7%89%88%E6%9C%AC\"><\/span>\u9009\u62e9ee\u7248\u672c<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\u9009\u62e9enterpise\u7248\u672c\uff0c\u4e0d\u5fc5\u4e13\u95e8\u9009\u62e9\u793e\u533a\u7248\u672c(\u9664\u975e\u6709\u5f00\u6e90\u6d01\u7656)\uff0c\u6ca1\u6709license\u7684enterprise\u7248\u672c\u529f\u80fd\u548c\u793e\u533a\u7248\u662f\u4e00\u6837\u7684\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E6%9C%BA%E5%99%A8%E9%87%8D%E5%90%AF%E5%90%8Egitlab%E4%B8%8D%E8%83%BD%E8%87%AA%E5%8A%A8%E5%90%AF%E5%8A%A8\"><\/span>\u673a\u5668\u91cd\u542f\u540egitlab\u4e0d\u80fd\u81ea\u52a8\u542f\u52a8<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\u673a\u5668\u91cd\u542f\u540e\uff0c\u53d1\u73b0gitlab\u670d\u52a1\u6ca1\u6709\u81ea\u5df1\u8d77\u6765\uff0c<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">gitlab-ctl restart<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">fail: alertmanager: runsv not running<br>fail: gitaly: runsv not running<br>fail: gitlab-monitor: runsv not running<br>fail: gitlab-workhorse: runsv not running<br>fail: grafana: runsv not running<br>fail: logrotate: runsv not running<br>fail: nginx: runsv not running<br>fail: node-exporter: runsv not running<br>fail: postgres-exporter: runsv not running<br>fail: postgresql: runsv not running<br>fail: prometheus: runsv not running<br>fail: redis: runsv not running<br>fail: redis-exporter: runsv not running<br>fail: sidekiq: runsv not running<br>fail: unicorn: runsv not running<\/p>\n<\/blockquote>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">systemctl start gitlab-runsvdir.service<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Failed to start gitlab-runsvrdir.service: Unit gitlab-runsvrdir.service not found.<\/p>\n<\/blockquote>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">systemctl status gitlab-runsvdir.service<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Unit gitlab-runsvrdir.service could not be found.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e5f\u662f\u4e0d\u884c\u7684\uff0c<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u25cf gitlab-runsvdir.service &#8211; GitLab Runit supervision process<br>Loaded: loaded (\/usr\/lib\/systemd\/system\/gitlab-runsvdir.service; enabled; ven<br>Active: inactive (dead)<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\u53ea\u80fd\u624b\u52a8\u542f\u52a8\uff0c<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">sudo \/opt\/gitlab\/embedded\/bin\/runsvdir-start<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u7a0d\u7b49\u51e0\u5206\u949f\u540e\uff0cgitlab\u5c31\u5f00\u59cb\u6b63\u5e38\u8fd0\u4f5c\u4e86\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E6%9C%BA%E5%99%A8%E9%87%8D%E5%90%AF%E5%90%8Egitlab-runner%E4%B8%8D%E8%83%BD%E8%87%AA%E5%8A%A8%E5%90%AF%E5%8A%A8\"><\/span>\u673a\u5668\u91cd\u542f\u540egitlab-runner\u4e0d\u80fd\u81ea\u52a8\u542f\u52a8<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\u91cd\u542f\u540egitlab-runner\u4e5f\u8dea\u4e86\uff0c\u4e5f\u9700\u8981\u624b\u52a8\u53bb\u8d77\u8d77\u6765\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">sudo gitlab-runner run<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u6216\u8005<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">sudo gitlab-runner start<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0d\u77e5\u9053\u4e3a\u5565\uff0cgitlab\u548cgitlab-runner\u8fd9\u4e24\u4e2asystem service\u662f\u4e0d\u80fd\u6b63\u5e38\u542f\u52a8\u7684\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%AE%89%E8%A3%85%E5%90%8E%E6%8A%A5%E9%94%99exit_status_0\"><\/span>\u5b89\u88c5\u540e\u62a5\u9519exit status 0<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">FATAL: Failed to start gitlab-runner: exit status 0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u89e3\u51b3\u529e\u6cd5\u548c\u8fd9\u7bc7exit status 5\u7684<a href=\"https:\/\/blog.csdn.net\/singi2015\/article\/details\/125394105\">\u535a\u5ba2<\/a>\u4e00\u6837\uff0c\u539f\u56e0\u662f\u5b89\u88c5\u4e86gitlab-runner\u540e\u6ca1\u6709\u88c5gitlab-runner\u7684\u670d\u52a1\uff0c\u9700\u8981\u624b\u52a8\u5b89\u88c5\u4e00\u4e0b\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">gitlab-runner install<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u5177\u4f53\u7684\u5b89\u88c5\u53c2\u6570\u53ef\u80fd\u9700\u8981\u7ed3\u5408\u5b9e\u9645\u60c5\u51b5\u8bbe\u7f6e\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E8%AE%BE%E7%BD%AEroot%E5%B8%90%E5%8F%B7\"><\/span>\u8bbe\u7f6eroot\u5e10\u53f7<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/docs.gitlab.com\/ee\/security\/reset_root_password.html\">\u53c2\u8003<\/a><br><a href=\"http:\/\/blog.iaquam.com\/2019\/02\/20\/GitLab%E9%87%8D%E7%BD%AE%E7%AE%A1%E7%90%86%E5%91%98%E5%AF%86%E7%A0%81\/\">\u53c2\u8003<\/a><\/p>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%9C%A8docker%E4%B8%AD%E8%BF%90%E8%A1%8Cgitlab\"><\/span>\u5728docker\u4e2d\u8fd0\u884cgitlab<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\u56e0\u4e3a\u4e2a\u4eba\u7535\u8111\u7684\u6027\u80fd\u662f\u8fc7\u5269\u7684\uff0c\u800c\u4e3a\u4e86gitlab\u79df\u4e00\u4e2a\u6027\u80fd\u597d\u4e00\u70b9\u7684vps\u4e5f\u4e0d\u5212\u7b97\uff0c\u6240\u4ee5\u4e0d\u5982\u5728\u81ea\u5df1\u7684\u4e2a\u4eba\u7535\u8111\u4e0a\u8dd1gitlab\u5c31\u597d\u4e86\uff0c\u5e76\u4e14\u4f7f\u7528docker\u505a\u597d\u9694\u79bb\uff0c\u4f7f\u7528\u5185\u7f51\u7a7f\u900f\u6280\u672f\u548c\u53cd\u5411\u4ee3\u7406\u6765\u5145\u5206\u5229\u7528vps\u7684\u7f51\u7edc\u548c\u8282\u7ea6\u79dfvps\u7684\u94b1\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%8F%82%E8%80%83\"><\/span><a href=\"https:\/\/docs.gitlab.com\/omnibus\/docker\/\">\u53c2\u8003<\/a><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%AE%89%E8%A3%85%E6%AD%A5%E9%AA%A4\"><\/span>\u5b89\u88c5\u6b65\u9aa4<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u8bbe\u7f6e\u4e00\u4e2a<code>GITLAB_HOME<\/code>\u73af\u5883\u53d8\u91cf<br><code>export GITLAB_HOME=xxx<\/code><\/li>\n\n\n\n<li>\u5b89\u88c5docker\u7248\u672cgitlab<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">   sudo docker run --detach \\\n     --hostname gitlab.example.com \\\n     --publish 443:443 --publish 80:80 --publish 22:22 \\\n     --name gitlab \\\n     --restart always \\\n     --volume $GITLAB_HOME\/config:\/etc\/gitlab \\\n     --volume $GITLAB_HOME\/logs:\/var\/log\/gitlab \\\n     --volume $GITLAB_HOME\/data:\/var\/opt\/gitlab \\\n     gitlab\/gitlab-ee:latest<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"gitlab%E8%BF%81%E7%A7%BB\"><\/span>gitlab\u8fc1\u79fb<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\u4ece\u670d\u52a1\u5668\u8fc1\u79fb\u5230\u672c\u673a\u9700\u8981\u8003\u8651gitlab\u7684\u8fc1\u79fb\u95ee\u9898\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%8F%82%E8%80%83-2\"><\/span><a href=\"https:\/\/www.cnblogs.com\/ssgeek\/p\/9392104.html\">\u53c2\u8003<\/a><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%A4%87%E4%BB%BD%E6%AD%A5%E9%AA%A4\"><\/span>\u5907\u4efd\u6b65\u9aa4<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u6267\u884c\u547d\u4ee4\u8fdb\u884c\u5907\u4efd<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">   sudo gitlab-rake gitlab:backup:create<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u53ef\u80fd\u5907\u4efd\u8fc7\u7a0b\u4e2d\u4f1a\u62a5<a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/22398\">\u8d85\u65f6\u9519\u8bef<\/a>\u3002<br>\u751f\u6210\u7684\u5907\u4efd\u6587\u4ef6\u5728\/var\/opt\/gitlab\/backups\/\u3002\u4e0d\u8fc7gitlab\u4f1a\u63d0\u793agitlab.rb\u548cgitlab-secrets.json\u6587\u4ef6\u6ca1\u6709\u5907\u4efd\uff0c\u9700\u8981\u81ea\u5df1\u624b\u52a8\u5907\u4efd\uff0c\u56e0\u4e3a\u8fd9\u4e9b\u5c5e\u4e8e\u654f\u611f\u4fe1\u606f\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u542f\u52a8\u65b0\u7684gitlab\u670d\u52a1<\/li>\n\n\n\n<li>\u5c06\u5907\u4efd\u6587\u4ef6\u8f6c\u81f3\u65b0\u7684gitlab\u670d\u52a1\u5907\u4efd\u76ee\u5f55\u4e0b<\/li>\n\n\n\n<li>\u6062\u590d\u6570\u636e<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">   gitlab-ctl stop unicorn\n   gitlab-ctl stop sidekiq\n   #BACKUP\u8def\u5f84\u4e0d\u5e26_gitlab_backup.tar\u8fd9\u4e9b\u540e\u7f00\n   gitlab-rake gitlab:backup:restore BACKUP=xxx\n   gitlab-ctl start<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E8%BF%81%E7%A7%BB%E5%90%8E%E6%97%A0%E6%B3%95%E5%88%A0%E9%99%A4%E9%A1%B9%E7%9B%AE\"><\/span>\u8fc1\u79fb\u540e\u65e0\u6cd5\u5220\u9664\u9879\u76ee<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fc1\u79fb\u540e\u9047\u5230\u4e86\u65e0\u6cd5\u5220\u9664\u9879\u76ee\u7684\u95ee\u9898\uff0c\u5bf9\u4e8e\u5220\u9664\u7684http\u8bf7\u6c42gitlab\u4f1a\u8fd4\u56de500\u9519\u8bef\u3002\u53c2\u8003\u8fd9\u4e2a<a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/30885\">issue<\/a>\u89e3\u51b3\u4e86\u95ee\u9898\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u5728\/var\/log\/gitlab\/gitlab-rails\/production.log\u6587\u4ef6\u91cc\u627e\u62a5\u9519\uff0c\u53d1\u73b0\u4e5f\u662f\u62a5\u4e00\u4e2a<code>OpenSSL::Cipher::CipherError()<\/code>\u7684\u9519\uff1b<\/li>\n\n\n\n<li><code>sudo gitlab-rails dbconsole<\/code>\uff0c\u7136\u540e<code>UPDATE projects SET runners_token = null, runners_token_encrypted = null;<\/code>\uff0c\u5c31\u53ef\u4ee5\u5220\u9664\u4e86\uff1b<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">\u7531\u4e8e\u6211\u7684gitlab\u662f\u5c40\u57df\u7f51\u5185\u81ea\u7528\uff0c\u56e0\u6b64\u7167\u7740issue\u91cc\u7684\u65b9\u6cd5\u89e3\u51b3\u4e86\u8fd9\u4e2a\u95ee\u9898\uff0c\u5982\u679cgitlab\u662f\u7ed9\u516c\u53f8\u63d0\u4f9b\u670d\u52a1\u7684\uff0c\u90a3\u4e48\u8fd8\u9700\u8981\u67e5\u6e05\u695a\u539f\u56e0\uff0c\u4e86\u89e3\u8fd9\u4e2a\u89e3\u51b3\u65b9\u6cd5\u5e26\u6765\u7684\u7f3a\u9677\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"gitlab-runner\"><\/span>gitlab-runner<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.cnblogs.com\/donfy\/p\/11248651.html\">gitlab-runner\u4e0d\u80fd\u4f7f\u7528\u672c\u5730\u955c\u50cf\u7684\u95ee\u9898<\/a><br>\u89e3\u51b3\u65b9\u6cd5\u662f\u628a\u914d\u7f6e\u6587\u4ef6\u91cc\u7684<code>pull_policy=\"always\"<\/code>\u6539\u6210<code>pull_policy=\"if-not-present\"<\/code>\u3002<\/li>\n\n\n\n<li>\u6ce8\u9500runner<br>By URL and token<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">  gitlab-runner unregister --url http:\/\/gitlab.example.com\/ --token t0k3n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">By name<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">  gitlab-runner unregister --name test-runner<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u5982\u679c\u6709\u591a\u4e2a\u540d\u5b57\u76f8\u540c\u7684runner\uff0c\u53ea\u4f1a\u6ce8\u9500\u5730\u4e00\u4e2a\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6ce8\u9500\u6240\u6709\u7684runner<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">  gitlab-runner unregister --all-runners<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"CICD\"><\/span>CICD<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u8bbe\u7f6eartifacts<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">rspec:\n  stage: test\n  script:\n    - bundle install\n    - rspec --format RspecJunitFormatter --out rspec.xml\n  artifacts:\n    reports:\n      junit: rspec.xml\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u76d1\u542c\u6587\u4ef6\u53d8\u5316\u65f6\u6267\u884c\u6784\u5efa\u4efb\u52a1<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">build1:\n  stage: build\n  only:\n    refs:\n      - branches\n    changes:\n      - \"my_project\/**\/*\"\n  tags:\n    - runner-tag\n  script:\n    - cd my_project\n    - make clean\n    - make t=$BUILD_TYPE\n  artifacts:\n      paths:\n        - my_project\/executable_file\n      expire_in: 1 day\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u4eceGitlab12.3\u5f00\u59cb\u540e\u4f7f\u7528rules\u66ff\u4ee3only\/except\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/stackoverflow.com\/questions\/42986385\/how-to-run-a-specific-job-in-gitlab-ci\">https:\/\/stackoverflow.com\/questions\/42986385\/how-to-run-a-specific-job-in-gitlab-ci<\/a><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">build1:\n  stage: build\n  rules:\n    - if: '$build_my_project == \"true\"'\n    - changes:\n        - \"my_project\/**\/*\"<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"yml%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6\"><\/span>yml\u914d\u7f6e\u6587\u4ef6<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">.gitlab.yml\u8fd9\u4e2a\u914d\u7f6e\u6587\u4ef6\u4e5f\u6709\u5751\uff0c\u6bd4\u5982\u91cc\u9762\u4e0d\u80fd\u968f\u4fbf\u4f7f\u7528\u5192\u53f7\uff0c\u5373\u4f7f\u662fecho\u6253\u5370\u4e00\u4e2a\u5305\u542b\u5192\u53f7\u7684\u5b57\u7b26\u4e32\u4e5f\u4e0d\u53ef\u4ee5\uff0c\u56e0\u4e3agitlab\u7684\u89e3\u6790\u5668\u4f1a\u628a\u8fd9\u4e2a\u5192\u53f7\u5f53\u4f5cyml\u6587\u4ef6\u683c\u5f0f\u7684\u4e00\u90e8\u5206\uff01<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gitlab\u5b89\u88c5 \u6309\u7167\u5b98\u7f51\u7684\u5b89\u88c5\u6b65\u9aa4\u64cd\u4f5c\u7ed3\u679c\u5931\u8d25\u4e86\uff0c\u5e72\u8106\u5728\u52a0\u5165gitlab\u5b98\u65b9\u6e90\u540e\u76f4\u63a5sudo apt-get install gitlab-ee\u7b97\u4e86\uff0c\u4ec0\u4e48EXTERNAL_URL\u90fd\u61d2\u5f97\u8bbe\u7f6e\u4e86\uff0c\u4f46\u662f\u7ed3&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[15],"class_list":["post-54","post","type-post","status-publish","format-standard","hentry","category-10","tag-gitlab"],"_links":{"self":[{"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=\/wp\/v2\/posts\/54","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=54"}],"version-history":[{"count":4,"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=\/wp\/v2\/posts\/54\/revisions"}],"predecessor-version":[{"id":1726,"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=\/wp\/v2\/posts\/54\/revisions\/1726"}],"wp:attachment":[{"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=54"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=54"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.cauchyschwarz.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=54"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}