在GitLab pages上快速搭建Jekyll博客 - 極客玩家大白

在GitLab pages上快速搭建Jekyll博客

前一段時間將我的Jekyll靜態(tài)博客從github pages鏡像部署到了 zeit.co(現(xiàn)vercel)上了一份,最近偶然發(fā)現(xiàn)gitlab pages也不錯,百度也會正常抓取,于是動手倒騰,將github pages快速遷移Jekyll博客到gitlab pages,中途遇到了不少坑,管他呢,一把刷。

于是有了下文的 從github pages快速遷移Jekyll博客到gitlab pages的完全指南。


Step1: 導(dǎo)入已有項目

登陸gitlab.com,點擊New Project,

screenshot1

點擊Import projects,

image.png

比如,我的jekyll blog對應(yīng)的代碼倉庫是: https://github.com/yanglr/yanglr.github.io,

由于我綁定了github賬號yanglr,系統(tǒng)會將我在github下所有的分支都load進來,接下來,我選擇yanglr/yanglr.github.io,這個倉庫,當(dāng)然Import進來之前要記得改名為: gitlab-username.gitlab.io, 接下來等待導(dǎo)入完成即可。

或點擊Repo by URL,

image.png


Step2: 為gitlab生成ssh密鑰

bravo@localhost MINGW64 /d/coding/Gitlab.com

$ cd ~/.ssh

bravo@localhost MINGW64 ~

$ ssh-keygen -t rsa -b 2048 -C "email@example.com"

然后復(fù)制id_rsa.pub的內(nèi)容,貼到gitlab profile的 settings -> ssh key中,具體入口為: https://gitlab.com/profile/keys

image.png

如果怕github的密鑰文件與gitlab的弄混,可以在執(zhí)行ssh-keygen -t rsa -b 2048 -C ""時,文件名取為: id_rsa_gitlab

然后到 .ssh 文件夾下創(chuàng)建一個文件名為config的文件,內(nèi)容如下:

# github
    Host github.com
    Hostname github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa

# gitlab
    Host gitlab.com
    Hostname gitlab.com
    User legege007
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_gitlab


Step3: Clone代碼

設(shè)置好ssh key后,我們就可以克隆代碼到本地了,命令如下:

git clone https://gitlab.com/legege007/legege007.gitlab.io.git

git clone非常慢的解決方法:

在自己的PC上git clone太慢了,clone地址換https的速度還可以~

有能力科學(xué)地上網(wǎng)的小伙伴可以想辦法解決。

還可以在git clone時,去掉末尾的.git


Step4: 創(chuàng)建 CI/CD配置文件

這部分可以直接參考gitlab官方給的 jekyll 示例 https://gitlab.com/pages/jekyll 來做。

具體做法是,在本地克隆下來的代碼倉庫的根目錄中創(chuàng)建文件 .gitlab.ci.yml, 然后貼入如下代碼:

image: ruby:latest

variables:
  JEKYLL_ENV: production
  LC_ALL: C.UTF-8

before_script:
  - gem install bundler
  - bundle install

test:
  stage: test
  script:
  - bundle exec jekyll build -d test
  artifacts:
    paths:
    - test
  except:
  - master

pages:
  stage: deploy
  script:
  - bundle exec jekyll build -d public
  artifacts:
    paths:
    - public
  only:
  - master

來源: https://gitlab.com/pages/jekyll/-/blob/master/.gitlab-ci.yml

同理,如果你的靜態(tài)博客選用的框架是hexo, 請參考項目https://gitlab.com/pages/hexo 下的CI/CD配置文件https://gitlab.com/pages/hexo/-/blob/master/.gitlab-ci.yml,gitbook 項目請用 https://gitlab.com/pages/gitbook/-/blob/master/.gitlab-ci.yml。

如果想對gitlab CI/CD有更多的了解,請參看:

https://gitlab.com/help/ci/quick_start/README


Step5: 等待build,2到3分鐘build完成后即可訪問

點擊頁面左側(cè)菜單中的 CI/CD,

image5

大概2到3分鐘build完成后即可訪問,pipelines中會出現(xiàn)一個狀態(tài)為 passed 的記錄,這時就可以訪問你的靜態(tài)博客(pages)了,訪問地址是:legege007.gitlab.io,由于gitlab是為gitlab.io默認(rèn)提供ssl證書的,所有此時也可以訪問https版本: https://legege007.gitlab.io。


Step6: 綁定域名

現(xiàn)在,我們來綁定自己的域名。

回到項目 剛才的代碼倉庫,比如我的是: https://gitlab.com/legege007/legege007.gitlab.io,點擊左側(cè) Settings -> pages,會發(fā)現(xiàn)右上角有個New Domain,

image6

比如,我想綁定到: geekplayers.com,填進去,點"Create New Domain"即可。

image7

接下來會看到以下界面:

image8

此時,需要在域名管理網(wǎng)站(比如,我在騰訊云上買的域名,我需要登陸 https://console.cloud.tencent.com/cns),然后在里面先后分別添加一條類型為TXT和一條類型為CNAME的記錄。

主機記錄 記錄類型 線路類型 記錄值 MX優(yōu)先級 TTL(秒) 最后操作時間 操作
_gitlab-pages-verification-code.web TXT 默認(rèn) gitlab-pages-verification-code=319ec4807facc9d92c6c62ba4efd1ccf
blog CNAME 默認(rèn) legege007.gitlab.io. - 600 2020-08-30 11:03:33 修改暫停刪除

TXT那一條加完之后,可以點擊 Verify Status 右側(cè)的 紅色按鈕旁邊的 ? ? ? 按鈕驗證網(wǎng)站所有權(quán),該按鈕會變成綠色,接下來點擊頁面下方的"Save Changes"。


Step7: 坐等自動下發(fā)SSL證書

最后就是等gitlab自動下發(fā)ssl證書。

大概再需要等6分鐘左右,頁面上的Domain會從http版的 http://blog.geekplayers.com 變?yōu)? https://blog.geekplayers.com,表明SSL證書已成功獲取。

至此,gitlab pages構(gòu)建完畢。如有疑問,歡迎在評論區(qū)提問交流~

本文作者: 極客玩家大白
原文鏈接: www.geekplayers.com/migrate-from-github-pages-to-gitlab-pages.html
版權(quán)聲明: 本網(wǎng)站(極客玩家大白)所有文章除特別聲明外,均采用 BY-NC-SA 許可協(xié)議。轉(zhuǎn)載請注明出處!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容