上篇文【攻略】Linux 伺服器架設 搞起來的步驟過於繁瑣,我自己都看的眼睛花花,
所以乾脆直接把他包成 container 來運行,省去架設的繁瑣步驟
Docker image 連結: https://hub.docker.com/r/hmes98318/palworld-docker
Github 連結: https://github.com/hmes98318/palworld-docker
第一步: 從 github clone 或下載程式碼並進入目錄 (或創建一個目錄新增一個 docker-compose.yml)
(我把它存在 ~/palworld-docker 接下來都依照此路徑說明)$ git clone https://github.com/hmes98318/palworld-docker.git
$ cd palworld-docker
第二步: 編輯 docker-compose.yml
修改你想要的設置 (記得設密碼)
(配置文件可能會跟 github 上的有差距,以 github 上的為主,這邊不會即時更新)
```
version: '3.8'
services:
palserver:
image: hmes98318/palworld-docker:latest
container_name: palserver
restart: always
environment:
TZ: "Asia/Taipei"
CHECK_UPDATE_ON_START: true
PORT: 8211
PLAYERS: 32
MULTITHREAD: true
ADMIN_PASSWORD: "youradminpassword"
SERVER_NAME: "Palworld Server"
SERVER_DESC: "Palworld Server Description"
SERVER_PASSWORD: ""
# COMMUNITY: false
# COMMUNITY_IP:
# COMMUNITY_PORT: 8211
RCON_ENABLED: false
RCON_PORT: 25575
volumes:
- ./palSaved:/home/steam/palworld/Pal/Saved
ports:
- 8211:8211/udp
```
以下為環境變數說明,詳細內容可參考 github
CHECK_UPDATE_ON_START: 是否在每次啟動時自動檢查遊戲更新 (預設值: true) (允許值: true/false)PORT: 伺服器監聽端口號 (預設值: 8211) (允許值: 0-65535)
PLAYERS: 最大玩家人數 (預設值: 16) (允許值: 1-32)
MULTITHREAD: 是否啟用多執行緒 (預設值: true) (允許值: true/false)
volumes 中的 ./palSaved 則為遊戲存檔及遊戲設定的存放目錄,你可以修改成任意名稱只要本地目錄與 docker-compose.yml 上的相同即可
第三步: 創建存檔目錄
$ mkdir palSaved
$ mkdir palSaved
需修改存檔目錄的權限,否則容器中的使用者無法有完整讀寫權限
(我懶得設權限 問就是 777)
$ chmod -R 777 ./palSaved
遊戲設定檔在本地目錄 ./palSaved/Config/LinuxServer/PalWorldSettings.ini(第一次運行後會自動生成)。
可參考 DefaultPalWorldSettings.ini 進行修改
第四步: 啟動容器
$ sudo docker compose up -d
(-d 表示在背景運行)
(-d 表示在背景運行)
第一次啟動時會下載 Palworld 伺服器資料,可能會有一段時間 (依照你的網速決定)
// 停止容器
$ sudo docker compose stop
// 重啟容器
$ sudo docker compose restart
// 刪除容器 (刪除後須重新下載伺服器資料)
$ sudo docker compose down
// 查看容器 log
$ sudo docker compose logs -f
$ sudo docker compose logs -f
第一次啟動成功的狀態為以下
----------------------------------------
如果你想把原本的存檔遷移過來可以查看以下內容
(先完成上述步驟把伺服器檔案下載下來後停止容器再來執行)
修改第三步:
假設你的伺服器目錄為 ~/Steam/steamapps/common/PalServer (接下來依照此目錄為範例)
則存檔的目錄則在 ~/Steam/steamapps/common/PalServer/Pal/Saved/
複製存檔到 palworld-docker 目錄下 (用複製的避免翻車沒檔案救)
$ cp -r ~/Steam/steamapps/common/PalServer/Pal/Saved ~/palworld-docker/
刪除新的存檔 (沒有就跳過)
$ rm -r palSaved/
重命名複製過來的存檔目錄並給他權限
$ mv Saved/ palSaved/
$ chmod -R 777 palSaved/
以上就完成了資料遷移 (我自己是這樣搞沒翻車)
再來就繼續進行第四步啟動容器
----------------------------------------
如果你想更新 Palserver 容器版本請參考以下內容
(目前的更新都會向下兼容,不用擔心升級後遊戲存檔不能用的問題)
先把容器停止並刪除容器
$ sudo docker compose down
刪除舊版鏡像檔
使用以下命令列出所有鏡像,選擇刪除
$ sudo docker images
$ sudo docker rmi <IMAGE_ID>
(如果你原本就是 latest 標籤的,把他刪除再去拉取最新的 latest 標籤)
修改你的 docker-compose.yml
修改 image: hmes98318/palworld-docker 冒號後面的版本號,更改到你要的新版本
(如果想使用最新版,可以直接把冒號後的版本號改成 latest 標籤就好)新版本有新增參數的話可以去 Github 上看有哪些新參數可以用
修改完成後就可以回到第四步啟動容器了
如果你原本就是 git clone 下來的,不想手動修改想用 git 來更新 docker-compose.yml 檔案可以使用此方法
拉取最新提交 (執行 git pull 或 git pull origin main 都行)
$ git pull
如果跳出以下錯誤表示你修改過本地檔案未保存與遠端分支衝突
執行 git status 查看未保存的檔案,並把 git pull 上寫的衝突檔案還原成剛 clone 下來的狀態
(如果 docker-compose.yml 中有參數要保留的記得先另外存起來)
(git status 底下的 Untracked files 應該會有地圖存檔及你創建的其他檔案,不用去動他)
$ git status
$ git restore docker-compose.yml
完成後再次 git pull 拉取最新提交
----------------------------------------