久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    使用 docker 快速部署 hexo 博客

     昵稱69932564 2020-05-15

    點擊在我的博客 中查看,有更好的排版哦~

    hexo 是一款靜態博客工具,不涉及到任何后端、數據庫啥的。

    也就是說不管過程中怎么亂七八糟的搗鼓,最終其實在部署的時候需要使用的,其實就是一堆前端靜態資源,htmljscssjpg 等等,也就是使用 hexo g 命令生成出來的 public 文件夾中所包含的部分。

    那么通常來講,對于沒有個人服務器的同學來說,一般是使用 github page 的功能來將靜態頁面托管到 github 上,但是由于國內 github 速度感人,使用起來并不是那么順暢。

    如果有個人服務器的話,我們可以使用 nginx 作為靜態資源服務器,來快速部署我們的博客。

    下面將介紹如何利用 dockernginx 鏡像來快速部署博客。

    一、服務器安裝 docker 環境

    1. 安裝 docker

    參考: 在 linux、mac 下快速簡單的安裝 docker

    2. 安裝 docker-compose

    docker-compose 并不是必須使用的,這里是為了更方便的管理我們的容器。

    macos 下安裝 docker 時自動就安裝了 docker-composelinux 則需要使用下面的命令手動安裝一下。

    $ curl -L https://github.com/docker/compose/releases/download/1.8.0/run.sh > /usr/local/bin/docker-compose $ chmod x /usr/local/bin/docker-compose
    • 1

    • 2

    二、初始化博客

    使用 npm i -g hexo-cli 命令全局安裝 hexo-cli,然后使用 hexo init blog 即可生成一個最簡單的博客項目了。

    然后在項目中新建一個 .npmrc 文件,將 registry=https://registry.npm. 寫入文件中,這個的作用是在安裝依賴包將鏡像源切換為國內的淘寶源。

    此時可以執行 hexo s 命令后,在瀏覽器中訪問 http://localhost:4000,就可以看到博客的頁面了。
    hexo s 啟動

    三、添加 Dockerfile 文件

    這里需要理清楚思路的一點是,整個部署流程我們分為兩個階段,第一個階段是生成靜態文件,也就是使用 hexo g 命令生成 public 文件夾,此過程依賴 nodejs 環境,而第二個階段則是啟動 nginx

    兩個階段我們會使用 dockerfile 的多階段構建來實現,第一個階段的 nodejs 容器中生成的 public 文件夾會被拷貝到第二個階段的 nginx 容器中使用,最終生成的是一個包含了博客靜態資源和 nginx 的鏡像。

    Dockerfile 文件如下

    # /Dockerfile
    FROM node:8-alpine as builder
    WORKDIR /project
    COPY . /project/
    RUN yarn     && yarn global add hexo-cli     && hexo g
    
    FROM nginx:alpine
    COPY --from=builder /project/public /usr/share/nginx/html
    RUN apk add --no-cache bash
    • 1

    • 2

    • 3

    • 4

    • 5

    • 6

    • 7

    • 8

    • 9

    • 10

    • 11

    因為是使用的 alpine 版本的鏡像,并沒有安裝 bash,所有在部署完成后無法通過 docker exec -it xx bash 進入容器中,所以加上了一行 apk add --no-cache bash,如果沒有后期進入容器的需求,可以刪除這一行,提高構建時的速度。

    三、添加 docker-compose.yml 文件

    其實不使用 docker-compose,直接 docker run 也是可以的,但是使用 docker-compose 更方便管理,也更加直觀一點。

    新建 docker-compose.yml 文件:

    # /docker-compose.yml version: '3' services: app: container_name: blog build: context: ./ dockerfile: ./ci/Dockerfile ports: - '8080:80' restart: on-failure
    • 1

    • 2

    • 3

    • 4

    • 5

    • 6

    • 7

    • 8

    • 9

    • 10

    • 11

    上述文件中指定了 容器名字Dockerfile 以及需要映射到宿主機的哪個 端口 上,可以根據自己的需求自行調整。

    構建并運行容器

    在項目目錄下執行命令 docker-compse up --build -d,然后在瀏覽器中訪問 https://localhost:8080,如果看到博客頁面了,部署就大功告成啦。
    docker-compose

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 在线天堂中文官网| 重口SM一区二区三区视频| 成年男女免费视频网站| 精品人人妻人人澡人人爽人人 | 国产在线不卡精品网站| 国内熟妇人妻色在线视频 | 男女激情一区二区三区| 中文有无人妻vs无码人妻激烈| 午夜美女裸体福利视频| 四虎国产精品永久在线下载| 国产日产欧产精品精品软件| 亚洲AV综合色区无码另类小说| 亚洲成A人一区二区三区| 深夜精品免费在线观看| 高清自拍亚洲精品二区| 国产AV午夜精品一区二区三区 | 亚洲精品无码你懂的| 亚洲精品爆乳一区二区H| 亚洲av午夜成人片| 日本一道一区二区视频| 成人无码影片精品久久久| 国产一区二区精品久久| 国产午夜精品福利91| 亚洲乳大丰满中文字幕| 亚洲AV日韩AV激情亚洲| 亚洲欧美人成网站在线观看看| 国产乱了伦视频大全亚琴影院| 中文午夜乱理片无码| 在线理论三级午夜电影| 推油少妇久久99久久99久久| 亚洲爆乳WWW无码专区| 少妇精品无码一区二区三区| 亚洲理论在线A中文字幕| 天码AV无码一区二区三区四区 | 把女人弄爽大黄A大片片| 一区二区三区不卡国产| 亚洲AV中文无码乱人伦| 免费现黄频在线观看国产| 午夜无码大尺度福利视频| 国产成人AV在线免播放观看新| 国产凹凸在线一区二区|