Deploy ຈາກເຄື່ອງຂອງທ່ານ ຫຼື CI ດ້ວຍ th CLI

ຄຳສັ່ງດຽວ build ໂຟນເດີຂອງທ່ານແລ້ວ deploy ໃຫ້ເລີຍ ບໍ່ຕ້ອງມີ Docker ໃນເຄື່ອງ

ທຸກຄຳສັ່ງ ແລະ ພາຣາມິເຕີຂອງ th container ຢູ່ໃນຄູ່ມືອ້າງອີງ CLI

ຕິດຕັ້ງ ແລະ ເຂົ້າສູ່ລະບົບ

Shell
# Linux, macOS
curl -fsSL https://raw.githubusercontent.com/mrzack99s/thailandhosting-cli/main/install.sh | sh
# Windows (PowerShell)
irm https://raw.githubusercontent.com/mrzack99s/thailandhosting-cli/main/install.ps1 | iex
# or with Go 1.23+
go install github.com/mrzack99s/thailandhosting-cli/cmd/th@latest

th auth login ຈະເປີດ Console ໃຫ້ກວດວ່າລະຫັດກົງກັບໃນ terminal ແລ້ວກົດ ອະນຸຍາດ ການເຂົ້າສູ່ລະບົບນີ້ໃຊ້ໄດ້ 90 ມື້ ແລະ ສະແດງໃນ ບັນຊີ → ອຸປະກອນທີ່ເຂົ້າສູ່ລະບົບ ເຊິ່ງອອກຈາກລະບົບໄດ້ຈາກບ່ອນນັ້ນ

Shell
th auth login                     # opens the Console to approve
th config set project my-project  # optional: the CLI picks your first Project
th container deploy api --source .      # build this folder and deploy it

--source ເຮັດຫຍັງແດ່

  1. CLI ແພັກໂຟນເດີ ໂດຍຕັດໄຟລ໌ທີ່ຢູ່ໃນ .thignore, .dockerignore ຫຼື .gitignore (ລວມທັງ .git ແລະ node_modules) ຂະໜາດບໍ່ເກີນ 100 MB
  2. ລະບົບ build ໃຫ້ ຖ້າມີ Dockerfile ຈະໃຊ້ໄຟລ໌ນັ້ນ ຖ້າບໍ່ມີຈະຂຽນໃຫ້ສຳລັບ Node.js (package.json), Python (requirements.txt ຫຼື pyproject.toml) ຫຼື Go (go.mod) ແລະ ສະແດງໃນ log ໃຫ້ສຳເນົາໄປປັບໄດ້ log ຈະໄຫຼມາທີ່ terminal ຂອງທ່ານ
  3. image ຖືກເກັບໃນ Registry ຂອງ Project ແລະ deploy ເປັນ Revision ໃໝ່ ຄັ້ງທຳອິດຈະສ້າງ Container ໃຫ້ ຄັ້ງຕໍ່ໄປຮັກສາການຕັ້ງຄ່າເດີມໄວ້ ປ່ຽນສະເພາະທີ່ທ່ານລະບຸ

ກົດ Ctrl+C ລະຫວ່າງ build ໄດ້ Build ຍັງເຮັດຕໍ່ຢູ່ຝັ່ງເຮົາ ເບິ່ງຕໍ່ດ້ວຍ th builds log <id> --follow

Deploy ຈາກ image, ປັບການຕັ້ງຄ່າ ແລະ ຍ້ອນ Revision

Shell
th container deploy api --image ghcr.io/acme/api:1.4 --port 3000 \
  --cpu 1 --memory 512Mi --min-instances 0 --max-instances 5 \
  --set-env-vars NODE_ENV=production --secret-env API_KEY=xxxx
Shell
th container services list
th container services describe api
th container services logs api --lines 200
th container revisions list --service api
th container services update-traffic api --to-revision 3   # roll back
th container images list api      # images and what keeps them
th container images delete api:old-tag
th builds list
th builds log <build-id> --follow

image ທີ່ build ຫຼື push ຢູ່ທີ່ registry.thailandhosting.com/<project>/<name> ຈະ push ດ້ວຍ Docker ເອງກໍໄດ້:

Shell
th auth configure-docker   # docker login to our registry
docker build -t registry.thailandhosting.com/my-project/api:1.4 .
docker push registry.thailandhosting.com/my-project/api:1.4
th container deploy api --image registry.thailandhosting.com/my-project/api:1.4

Registry ເກັບ image ໄວ້ໃຫ້ 10 Revision ລ່າສຸດຂອງແຕ່ລະ Container (Revision ທີ່ເກົ່າກວ່ານັ້ນຍ້ອນກັບບໍ່ໄດ້ຫຼັງຜ່ານໄປ 7 ມື້) ແລະ image ທີ່ຕິດ tag ໄວ້ ແຕ່ລະ Project ໄດ້ 20 GB ແລະ ຈະໄດ້ອີເມວເຕືອນເມື່ອໃຊ້ຮອດ 80% ເບິ່ງ ແລະ ລຶບ image ໄດ້ດ້ວຍ th container images list / th container images delete ຫຼື ການ໌ດ Registry ໃນໜ້າ Container

Deploy ຈາກ GitHub Actions ຫຼື CI ອື່ນ

ໃນ Console ເປີດ Integrations → API keys ສ້າງ Key ທີ່ມີສິດ Containers: deploy (run:write) Key ນີ້ໃຊ້ໄດ້ສະເພາະ Container, Build ແລະ Registry ຂອງ Project ຂອງມັນ ເກັບໄວ້ເປັນ secret ຊື່ TH_API_KEY

Shell
# .github/workflows/deploy.yml
on: { push: { branches: [main] } }
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-go@v5
        with: { go-version: '1.23' }
      - run: go install github.com/mrzack99s/thailandhosting-cli/cmd/th@latest
      - run: th container deploy api --source .
        env:
          TH_API_KEY: ${{ secrets.TH_API_KEY }}   # a key with the run:write scope

Build ແລະ Registry ຄິດເງິນຕາມການໃຊ້ງານ Wallet ຂອງ Project ຕ້ອງມີຍອດເງິນ ເຄື່ອງ Build ສ້າງ image ໄດ້ສຳລັບ CPU ແບບດຽວ ຖ້າປະເພດເຄື່ອງຂອງ Container ໃຊ້ອີກແບບ ໃຫ້ build ເອງດ້ວຍ docker buildx --platform ແລ້ວ deploy ດ້ວຍ --image

ຖ້າພົບບັນຫາ

ຂຶ້ນວ່າ “ไม่พบ Dockerfile และไม่รู้จักชนิดโปรเจกต์” (ບໍ່ພົບ Dockerfile ແລະ ບໍ່ຮູ້ຈັກປະເພດໂປຣເຈັກ)

ເພີ່ມ Dockerfile ທີ່ຊັ້ນເທິງສຸດຂອງໂຟນເດີ ຫຼື ສັ່ງ deploy ຈາກໂຟນເດີທີ່ມີ package.json, go.mod ຫຼື requirements.txt

Build ຈົບດ້ວຍ exit code 137

Build ໃຊ້ໜ່ວຍຄວາມຈຳເກີນ ຫຼຸດວຽກຕອນ build ຫຼື build image ເອງແລ້ວ deploy ດ້ວຍ --image

CLI ຂຶ້ນວ່າ “Token ไม่ถูกต้องหรือหมดอายุ” (Token ບໍ່ຖືກຕ້ອງ ຫຼື ໝົດອາຍຸ)

ສັ່ງ th auth login ໃໝ່ ຖ້າເປັນ CI ໃຫ້ກວດວ່າ API Key ມີສິດ run:write ແລະ ຍັງບໍ່ໝົດອາຍຸ

ຍັງແກ້ບໍ່ໄດ້? ໃຫ້ທີມງານຊ່ວຍ

ເປີດ ticket ຈາກໜ້າຈັດການ ບອກຊື່ເວັບ ຫຼື ບໍລິການ ສິ່ງທີ່ເຮັດ ແລະ ຂໍ້ຄວາມທີ່ເຫັນເທິງຈໍ ທີມງານຈະຕອບກັບໃນເລື່ອງດຽວກັນ ຕິດຕາມໄດ້ໃນບ່ອນດຽວ