iT邦幫忙

2021 iThome 鐵人賽

DAY 20
2
DevOps

以 Docker 為始的多種開源服務初探系列 第 20

Day 20 架設開源的 CodiMD 服務

網路上的即時文件協作中,除了 Google Documents 系列外,HackMD 也走出了一條自己的路。它採用 Markdown 語法,用起來非常的順手。CodiMD是其開源的版本。不過由於維護方的不同,而有以下兩種版本:

經由比較文件內容和佈署容易度後,選用 CodiMD 來安裝。

Docker-Compose

  1. 選用官方說明文件中的範本,進行一些調整如下:
version: "3"
services:
  database:
    image: postgres:11.6-alpine
    environment:
      - POSTGRES_USER=<DB_USER_NAME>
      - POSTGRES_PASSWORD=<DB_PASSWORD>
      - POSTGRES_DB=codimdDB<DB_NAME>
    volumes:
      - "database-data:/var/lib/postgresql/data"
    ports:
      - "3419:3419" # port 可自訂
    restart: always
  codimd:
    image: hackmdio/hackmd:2.4.1
    environment:
      - CMD_DB_URL=postgres://<DB_USER_NAME>:<DB_PASSWORD>@database/<DB_NAME>
      - CMD_USECDN=false
    depends_on:
      - database
    ports:
      - "3000:3000" # 前端 app 預設是開啟 3000 
    volumes:
      - upload-data:/home/hackmd/app/public/uploads
    restart: always
# volumes 提供 container 保存資料或共享資料,避免一 docker-compose down 就資料遺失
volumes:
  database-data: {}
  upload-data: {}
  1. 將上述內容存成 docker-compose.yml 檔案,存放到遠端的 Server 內。像是 /user/codimd
  2. 用命令列連上遠端 Server,並切換到該資料夾
  3. 執行 docker-compose,就會開始安裝
cd usr/codimd
docker-compose up
  1. 完畢後,使用 docker ps,來看看所建的 container 狀況
CONTAINER ID   IMAGE                        COMMAND                  CREATED        STATUS        PORTS                                                                                  NAMES
f3bbabb15f8c   hackmdio/hackmd:2.4.1        "/home/hackmd/app/do…"   24 hours ago   Up 24 hours   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp                                              codimd_codimd_1
3459ebc2a582   postgres:11.6-alpine         "docker-entrypoint.s…"   24 hours ago   Up 24 hours   0.0.0.0:3419->3419/tcp, :::3419->3419/tcp, 5432/tcp                                    codimd_database_1
  1. 連上你的主機 IP 位置,並加上埠號 3000 <IP Address>:3000,就可以連入
    img-demo
  2. 接著,就如同 HackMD 一樣的使用吧

已知問題

  • 目前若你要更改瀏覽器端的接口埠號 3000,雖說可以在 docker-compose.yml 中進行修改如下:
version: "3"
services:
  codimd:
    image: hackmdio/hackmd:2.4.1
    environment:
      ......
      - CMD_PORT=6000
    depends_on:
      - ......
    ports:
      - "6000:6000"

不過我實際照 Github 上的提問執行後,目前還是沒辦法成功。

參考資料

  1. Docker Compose 菜鳥教程
  2. CodiMD Documentation - Docker Deployment

上一篇
Day 19 Docker Compose 操作指令
下一篇
Day 21 裝設開源的 Libre-Office
系列文
以 Docker 為始的多種開源服務初探30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言