1. SSH เข้า VPS
ssh root@YOUR_SERVER_IP
2. ดูชื่อ Container Hermes
docker ps
จะเห็นประมาณนี้:
hermes-agent-x2xy-hermes-agent-1
โดยที่ x2xy คือชื่อ รหัส hermes ของคุณ
ปัญหาที่เจอคือ หลังจากอัปเดต Hermes Agent ใน Docker ด้วยคำสั่งประมาณนี้:
docker exec -u root -it hermes-agent-x2xy-hermes-agent-1 bash -lc '/usr/local/bin/uv pip install --upgrade "git+https://github.com/NousResearch/hermes-agent.git" --python /opt/hermes/.venv/bin/python && /opt/hermes/.venv/bin/hermes --version'
ตอนรันอยู่จะเห็นว่า Hermes เป็นเวอร์ชันใหม่แล้ว เช่น:
Hermes Agent v0.15.1 (2026.5.29)
แต่พอ reboot เครื่อง หรือ Docker ถูก recreate ใหม่ กลับไปเป็นเวอร์ชันเก่าอีก
สาเหตุคือคำสั่ง docker exec แก้ไขแค่ “container ที่กำลังรันอยู่” เท่านั้น
แต่ Docker Compose ยังใช้ image เดิมอยู่ พอ container ถูกสร้างใหม่ มันจึงกลับไปใช้ Hermes จาก image เก่า
วิธีแก้ถาวรคือ สร้าง Docker image ใหม่ที่ติดตั้ง Hermes เวอร์ชันใหม่ไว้ใน image เลย แล้วแก้ docker-compose.yml ให้ใช้ image ใหม่นั้น
1. ตรวจสอบ image เดิมของ container
docker inspect hermes-agent-x2xy-hermes-agent-1 --format='{{.Config.Image}}'
ผลที่ได้ในเคสนี้คือ:
ghcr.io/hostinger/hvps-hermes-agent:latest
2. สร้าง Custom Docker Image
สร้างไฟล์ Dockerfile.hermes-custom
cat > Dockerfile.hermes-custom <<'EOF'
FROM ghcr.io/hostinger/hvps-hermes-agent:latest
USER root
RUN /usr/local/bin/uv pip install --upgrade "git+https://github.com/NousResearch/hermes-agent.git" \
--python /opt/hermes/.venv/bin/python
RUN /opt/hermes/.venv/bin/hermes --version
EOF
3. Build image ใหม่
docker build -f Dockerfile.hermes-custom -t hermes-agent-custom:v0.15.1 .
4. ทดสอบ image ใหม่
เนื่องจาก image ของ Hostinger มี entrypoint เปิด ttyd อัตโนมัติ เวลา test ต้องใช้ --entrypoint เพื่อข้าม entrypoint เดิม
docker run --rm --entrypoint /opt/hermes/.venv/bin/hermes hermes-agent-custom:v0.15.1 --version
ถ้าสำเร็จจะขึ้นประมาณนี้:
Hermes Agent v0.15.1 (2026.5.29) Project: /opt/hermes/.venv/lib/python3.13/site-packages Python: 3.13.5 OpenAI SDK: 2.24.0 Up to date
5. หาไฟล์ docker-compose.yml ตัวจริง
find / -name "docker-compose.yml" -o -name "compose.yml" 2>/dev/null
ในเคสนี้ไฟล์จริงอยู่ที่:
/docker/hermes-agent-x2xy/docker-compose.yml
ไฟล์อื่นที่อยู่ใน .cache, /var/lib/docker, /var/lib/containerd ไม่ต้องแก้ เพราะเป็น cache หรือไฟล์ภายใน container/system
6. สำรองและแก้ docker-compose.yml
ใช้คำสั่งเดียวนี้ได้เลย:
cp /docker/hermes-agent-x2xy/docker-compose.yml /docker/hermes-agent-x2xy/docker-compose.yml.bak && \ sed -i 's|ghcr.io/hostinger/hvps-hermes-agent:latest|hermes-agent-custom:v0.15.1|g' /docker/hermes-agent-x2xy/docker-compose.yml
คำสั่งนี้จะเปลี่ยนจาก image เดิม:
image: ghcr.io/hostinger/hvps-hermes-agent:latest
เป็น image ใหม่:
image: hermes-agent-custom:v0.15.1
7. Restart Docker Compose
cd /docker/hermes-agent-x2xy && \ docker compose down && \ docker compose up -d
8. ตรวจสอบ Hermes version ใน container จริง
docker exec -it hermes-agent-x2xy-hermes-agent-1 bash -lc '/opt/hermes/.venv/bin/hermes --version'
ถ้าสำเร็จจะได้:
Hermes Agent v0.15.1 (2026.5.29) Project: /opt/hermes/.venv/lib/python3.13/site-packages Python: 3.13.5 OpenAI SDK: 2.24.0 Up to date
คำสั่งรวมแบบ One Command
ถ้าสร้าง image แล้ว และต้องการเปลี่ยน compose + restart + เช็ก version ให้ใช้ชุดนี้:
cp /docker/hermes-agent-x2xy/docker-compose.yml /docker/hermes-agent-x2xy/docker-compose.yml.bak && \ sed -i 's|ghcr.io/hostinger/hvps-hermes-agent:latest|hermes-agent-custom:v0.15.1|g' /docker/hermes-agent-x2xy/docker-compose.yml && \ cd /docker/hermes-agent-x2xy && \ docker compose down && \ docker compose up -d && \ docker exec -it hermes-agent-x2xy-hermes-agent-1 bash -lc '/opt/hermes/.venv/bin/hermes --version'
สรุป
ปัญหาไม่ได้อยู่ที่ Hermes อัปเดตไม่สำเร็จ
แต่เกิดจากการอัปเดตด้วย docker exec เป็นการแก้ไขเฉพาะ container ปัจจุบันเท่านั้น
วิธีแก้ถาวรคือ:
สร้าง Custom Docker Image ↓ ติดตั้ง Hermes version ใหม่ไว้ใน image ↓ แก้ docker-compose.yml ให้ใช้ image ใหม่ ↓ docker compose down / up -d
หลังจากนี้ reboot เครื่อง หรือ recreate container ใหม่ ก็จะยังใช้ Hermes Agent เวอร์ชันใหม่ ไม่ย้อนกลับไปเวอร์ชันเก่าแล้วครับ