Prompt
Sen konteyner güvenliği ve imaj optimizasyonu konusunda uzman bir DevOps mühendisisin.
Proje, dil ve sürüm: [PROJE]
Derleme ve çalıştırma komutları: [KOMUTLAR]
Bağımlı servisler ve ortam değişkenleri: [SERVISLER]
Çalışacağı ortam: [ORTAM]
Başlamadan önce: Eksik bir bilgi varsa (port, statik dosyalar, native bağımlılıklar) en fazla 3 kısa soru sor ve yanıtımı bekle.
Çıktı:
1. Dockerfile:
- Çok aşamalı derleme (build ve runtime ayrı); runtime için minimal ve sürümü sabitlenmiş temel imaj.
- Bağımlılık dosyalarını kaynak koddan önce kopyalayarak katman önbelleğini verimli kullan.
- Root olmayan kullanıcı, gereksiz paket yok, uygun dosya izinleri.
- HEALTHCHECK, EXPOSE ve SIGTERM'i doğru işleyen bir giriş komutu.
- Her önemli satırın üstünde kısa bir yorum.
2. .dockerignore
3. docker-compose.yml: Uygulama ve bağımlı servisler, sağlık kontrolüne bağlı başlatma sırası, kalıcı veri için volume, gizli bilgileri imaja gömmeyen ortam değişkeni kullanımı.
4. Tahmini imaj boyutu ve daha da küçültmek için ek seçenekler.
5. Güvenlik kontrol listesi: İmaj taraması, gizli bilgi yönetimi, salt okunur dosya sistemi.
Kurallar: Gizli bilgileri (şifre, API anahtarı) asla Dockerfile'a yazma. latest etiketini kullanma.
Doldurulacak alanlar 4
- [PROJE]
- Proje, dil ve sürüm Örn. Next.js 15 uygulaması, Node.js 22
- [KOMUTLAR]
- Derleme ve çalıştırma komutları Örn. npm ci, npm run build, npm start (port 3000)
- [SERVISLER]
- Bağımlı servisler ve ortam değişkenleri Örn. PostgreSQL 16 ve Redis; DATABASE_URL, REDIS_URL, NEXTAUTH_SECRET
- [ORTAM]
- Çalışacağı ortam Örn. Tek bir VPS üzerinde docker compose ile
Örnek çıktı
```dockerfile
# 1) Bağımlılıklar: yalnızca package dosyaları değişince yeniden çalışır
FROM node:22.9-alpine AS deps
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
# 2) Derleme
FROM node:22.9-alpine AS build
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .
RUN npm run build
# 3) Çalışma: standalone çıktı + root olmayan kullanıcı
FROM node:22.9-alpine AS runtime
WORKDIR /app
ENV NODE_ENV=production
RUN addgroup -S app && adduser -S app -G app
COPY --from=build --chown=app:app /app/.next/standalone ./
...
USER app
EXPOSE 3000
HEALTHCHECK --interval=30s --timeout=3s CMD wget -qO- http://localhost:3000/api/health || exit 1
CMD ["node", "server.js"]
```
4. Tahmini boyut: ~180 MB (standalone çıktı ile). next.config'te output: "standalone" ayarlı olmalı.
# 1) Bağımlılıklar: yalnızca package dosyaları değişince yeniden çalışır
FROM node:22.9-alpine AS deps
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
# 2) Derleme
FROM node:22.9-alpine AS build
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .
RUN npm run build
# 3) Çalışma: standalone çıktı + root olmayan kullanıcı
FROM node:22.9-alpine AS runtime
WORKDIR /app
ENV NODE_ENV=production
RUN addgroup -S app && adduser -S app -G app
COPY --from=build --chown=app:app /app/.next/standalone ./
...
USER app
EXPOSE 3000
HEALTHCHECK --interval=30s --timeout=3s CMD wget -qO- http://localhost:3000/api/health || exit 1
CMD ["node", "server.js"]
```
4. Tahmini boyut: ~180 MB (standalone çıktı ile). next.config'te output: "standalone" ayarlı olmalı.
0
- Kopyalanma
- 142
- Olumlu oy
- +0
- Yorum
- 0
Promptun aracı
ChatGPT için diğer promptlarBenzer promptlar
- Arama Niyetine Uygun SEO Blog Yazısı Hedef anahtar kelimenize göre arama niyetini analiz eden, önce taslak sunup onayınızı alan, sonra özgün deneyim ve örneklerle zenginleştirilmiş SEO uyumlu bir blog yazısı yazdırın.
- Dürüst ve Güven Veren Ürün İnceleme Yazısı Kullandığınız bir ürünü kendi deneyiminize dayanarak; artıları, eksileri, kime uygun olup olmadığı ve alternatifleriyle birlikte okurun karar vermesini kolaylaştıran dürüst bir incelemeye dönüştürün.
- "En İyi X Öneri" Formatında Liste Yazısı (Listicle) "En iyi 10 ...", "... için 7 öneri" gibi liste yazılarını; her maddesi gerçekten fark yaratan, seçim kriterleri açık ve okuyucuya "hangisi bana uygun?" sorusunun cevabını veren biçimde yazın.
- Okunan ve Tıklanan E-Bülten (Newsletter) Hazırlama Haftalık veya aylık e-bülteniniz için; açılma oranını artıran konu satırları, kişisel bir giriş, taranabilir bölümler ve tek net eylem çağrısıyla okunan bir bülten hazırlayın.
Topluluk denemeleri (0)
Bu promptla üretilen görseller. Siz de denediyseniz sonucunuzu paylaşın; editör onayından sonra burada görünür.
Henüz paylaşılan deneme yok. İlk sonucu siz paylaşın.
Yorumlar (0)
Henüz yorum yok
Promptu denediyseniz deneyiminizi veya geliştirme önerinizi paylaşın.
Yorum yapmak için giriş yap