---
title: "Tek seferlik görev ve migration"
description: "Veritabanı migration ya da seed'i bir servisin imajı, değişkenleri ve gizli değerleriyle bir kez çalıştırın; her pipeline dağıtımından önce kendiliğinden çalıştırın."
url: https://www.gyrohosting.com/developers/tr/howto/container-job.html
language: tr
openapi: https://www.gyrohosting.com/developers/openapi.json
api_version: 2.34.0
---

# Tek seferlik görev ve migration

Veritabanı migration ya da seed'i bir servisin imajı, değişkenleri ve gizli değerleriyle bir kez çalıştırın; her pipeline dağıtımından önce kendiliğinden çalıştırın.

**curl**

```bash
curl -s -X POST https://www.gyrohosting.com/api/v1/client/cloud/containers/12345/services/api/run \
  -H "Authorization: Bearer $GYRO_TOKEN" -H "Content-Type: application/json" -H "Idempotency-Key: $(uuidgen)" \
  -d '{"command":["npm","run","migrate"],"timeout_seconds":900}'
curl -s https://www.gyrohosting.com/api/v1/client/cloud/containers/12345/jobs/jt0abc12def3/logs -H "Authorization: Bearer $GYRO_TOKEN"
```

**CLI**

```bash
gyro container run 12345 --service api --follow -- npm run migrate
gyro container jobs 12345
gyro container job logs 12345 jt0abc12def3
```

Görev, servisin **çalışan sürümünün digest'e sabitlenmiş imajını**, değişkenlerini ve gizli değerlerini kullanır (gizli değerler çıktıda `****` görünür). Komut imajın ENTRYPOINT'inin yerine geçer ve listedir: `["sh","-c","a && b"]` yazmadıkça kabuk yoktur. Port ve sağlık kontrolü yok; başarısız görev tekrar denenmez. Varsayılan boyut servisinki, zaman sınırı 30 dakika (10 sn - 6 saat). CLI `--wait` / `--follow` ile görevin çıkış koduyla biter (124 = zaman sınırı).


## Her dağıtımdan önce (Gyro Pipeline)

**YAML**

```
# gyro-pipeline.yml
image: api
deploy:
  services: [api]
  release: ["npm", "run", "migrate"]   # YENİ imajla, dağıtımdan önce çalışır
```

Çalıştırma `releasing` durumunda bekler; görev başarısız olursa dağıtım yapılmaz, çalışan sürüm kalır (hata `release_failed`). Ortam başına eşzamanlı görev: Sunucusuz ve 2 vCPU'ya kadar paketlerde 2, diğerlerinde 3 (destek talebiyle artırılır). Düğümlü paketlerde ücretsiz; Sunucusuz'da görev (task) gibi vCPU-saniye / GB-saniye ile ücretlenir (satır `<servis>-job`). Başarısız görev `job_failed` uyarısını tetikler.
