使用 Synology Container Manager 部屬 Discord Bot

本文會說明如何用 Container Manager 從 Docker Hub 下載 Discord Bot 的 Image 後部屬到 Synology Nas 上。

目次

前置準備

如果還沒將你的 Discord bot 的 Image 上傳到 Docker Hub 的話可以參考我之前寫的文章。

以下的範例使用上文所上傳的 Image。

下文使用的 docker_test_bot Image 已經更名成 discord_test_bot

下載

在 Container Manager 裡面 倉庫伺服器 搜尋你的 Image 下載

下載完後會出現在映像檔中。

製作 Container

STEP
新增容器

到映像檔選擇剛剛下載的 Image 執行 命名 Container 下一步

STEP
儲存空間設定

因為我的 Discord Bot 會用到 db 與 log 兩個 volumes, 所以在這裡設定 volume 的儲存位置。

選擇要儲存 log 的資料夾, 然後旁邊輸入 /app/log, 代表將 Container 中的 /app/log 這個資料夾同步到 Nas 指定的資料夾。

然後選擇要儲存 db 的資料夾, 旁邊輸入 /app/db

STEP
環境設定

環境設定新增 BOT_AUTHOR_IDBOT_TOKEN 下一步

STEP
完成

確認沒問題後 完成。
成功執行後 Container 的前面亮綠燈就 OK 了。

常見問題

如果 Container 啟動時出現錯誤怎麼辦

通常是你指定的 Volume 資料夾權限不足 (沒有權限讀寫你指定的資料夾) 或環境變數沒有設定成功, 詳細情況可以進入你的 Container 的詳細資訊 日誌, 來查看詳細的原因。

Container 不斷重新啟動怎麼辦

因為在新增 Container 的時候勾到了 啟用自動重啟 的關係, 這個功能隨著錯誤的次數提升, 重啟的間隔會越來越久, 選擇停止強制停止就好了。

如果 Volume 的內容沒有出現原本 Image 內包含的檔案

在 Container Manager 中, 在設定 Nas 的哪個資料夾 (a) 要跟 Container 的哪個資料夾 (b) 同步 (就是 Volume 那邊), 開始執行 Container 後, 系統會將 a 覆蓋 b, 所以如果你的 a 原本是空的, 那覆蓋過去後 b 就會是空的, 如果你需要 b 中的檔案執行的話, 就在執行 Container 後複製一份到 a 就行了。

刪掉 Container 後 Volume 的內容會不見嗎

不會。

想用專案的方式可以嗎

可以, 建立專案後選擇建立 compose.yaml 後修改下面的範本就可以了。

使用當前路徑:

YAML
services:
  bot:
    image: 'alone0506/discord_test_bot'
    container_name: 'test_bot'
    environment:
      - BOT_AUTHOR_ID=your_id
      - BOT_TOKEN=your_bot_token
    volumes:
      - ./db:/app/db
      - ./log:/app/log

或手動指定路徑:

YAML
services:
  bot:
    image: 'alone0506/discord_test_bot'
    container_name: 'test_bot'
    environment:
      - BOT_AUTHOR_ID=your_id
      - BOT_TOKEN=your_bot_token
    volumes:
      - /volume1/docker/discord_test_bot/db:/app/db
      - /volume1/docker/discord_test_bot/log:/app/log
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次