ທຸກຄຳສັ່ງ ແລະ ພາຣາມິເຕີຂອງ th container ຢູ່ໃນຄູ່ມືອ້າງອີງ CLI
ຕິດຕັ້ງ ແລະ ເຂົ້າສູ່ລະບົບ
# 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@latestth auth login ຈະເປີດ Console ໃຫ້ກວດວ່າລະຫັດກົງກັບໃນ terminal ແລ້ວກົດ ອະນຸຍາດ ການເຂົ້າສູ່ລະບົບນີ້ໃຊ້ໄດ້ 90 ມື້ ແລະ ສະແດງໃນ ບັນຊີ → ອຸປະກອນທີ່ເຂົ້າສູ່ລະບົບ ເຊິ່ງອອກຈາກລະບົບໄດ້ຈາກບ່ອນນັ້ນ
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 ເຮັດຫຍັງແດ່
- CLI ແພັກໂຟນເດີ ໂດຍຕັດໄຟລ໌ທີ່ຢູ່ໃນ
.thignore,.dockerignoreຫຼື.gitignore(ລວມທັງ.gitແລະnode_modules) ຂະໜາດບໍ່ເກີນ 100 MB - ລະບົບ build ໃຫ້ ຖ້າມີ
Dockerfileຈະໃຊ້ໄຟລ໌ນັ້ນ ຖ້າບໍ່ມີຈະຂຽນໃຫ້ສຳລັບ Node.js (package.json), Python (requirements.txtຫຼືpyproject.toml) ຫຼື Go (go.mod) ແລະ ສະແດງໃນ log ໃຫ້ສຳເນົາໄປປັບໄດ້ log ຈະໄຫຼມາທີ່ terminal ຂອງທ່ານ - image ຖືກເກັບໃນ Registry ຂອງ Project ແລະ deploy ເປັນ Revision ໃໝ່ ຄັ້ງທຳອິດຈະສ້າງ Container ໃຫ້ ຄັ້ງຕໍ່ໄປຮັກສາການຕັ້ງຄ່າເດີມໄວ້ ປ່ຽນສະເພາະທີ່ທ່ານລະບຸ
ກົດ Ctrl+C ລະຫວ່າງ build ໄດ້ Build ຍັງເຮັດຕໍ່ຢູ່ຝັ່ງເຮົາ ເບິ່ງຕໍ່ດ້ວຍ th builds log <id> --follow
Deploy ຈາກ image, ປັບການຕັ້ງຄ່າ ແລະ ຍ້ອນ Revision
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=xxxxth 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> --followimage ທີ່ build ຫຼື push ຢູ່ທີ່ registry.thailandhosting.com/<project>/<name> ຈະ push ດ້ວຍ Docker ເອງກໍໄດ້:
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.4Registry ເກັບ 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
# .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 scopeBuild ແລະ 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 ແລະ ຍັງບໍ່ໝົດອາຍຸ