Container Deployment
Deploy aplikasi Docker dengan sistem billing yang transparan berdasarkan penggunaan resource.
Persyaratan
Untuk melakukan deploy aplikasi container, repository Anda harus memiliki file Dockerfile di direktori root.
# Contoh Dockerfile
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["node", "index.js"]
Konfigurasi Port
Saat membuat atau mengupdate project, tentukan port yang akan digunakan container Anda. Aplikasi harus mendengarkan pada port tersebut untuk menerima traffic.
// Contoh Node.js — mendengarkan di port yang ditentukan
const port = 3000; // Sesuaikan dengan port yang Anda atur di project
app.listen(port, () => {
console.log(`Server berjalan di port ${port}`);
});
Scaling & Billing
Container deployment melakukan scaling otomatis berdasarkan trafik. Anda hanya membayar untuk resource yang benar-benar digunakan saat aplikasi sedang aktif menangani request.
Untuk informasi pricing dan kuota terbaru, lihat halaman Pricing atau ringkasan kuota di dashboard Anda.
Arsitektur Stateless
Container deployment berjalan pada arsitektur stateless:
- Tidak ada persistent storage: Data yang disimpan di container akan hilang saat restart atau scaling
- CPU request-driven: Aplikasi Anda hanya menggunakan CPU saat memproses request
- Tidak ada jaminan uptime: Container dapat di-restart kapan saja untuk update atau optimasi resource
Untuk data yang persisten, gunakan external services:
- Databases: PostgreSQL, MySQL, MongoDB (managed services)
- File storage: AWS S3, Google Cloud Storage
- Configuration: Environment variables atau external config services
- Caching: External Redis, Memcached
Contoh dengan external database:
// Gunakan connection pooling ke external database
const { Pool } = require('pg');
const pool = new Pool({
connectionString: process.env.DATABASE_URL // External PostgreSQL
});
Environment Variables
Environment variable dapat diatur melalui pengaturan project Anda. Variable tersebut akan diinjeksi saat runtime.
# .env.local (untuk pengembangan lokal)
DATABASE_URL=postgresql://localhost/mydb
API_KEY=secret123
# Atur di pengaturan project Anda di getlaunch.dev
Build Context
getlaunch.dev membangun Docker image dari root repository. Gunakan file .dockerignore untuk mengecualikan file yang tidak diperlukan dari proses build.
.git
.gitignore
node_modules
.env.local
.DS_Store
README.md
Custom Domains
Setiap container application mendapatkan default URL:
project-name-xxxx--app.gtlnch.app
Anda dapat mengonfigurasi custom domain di pengaturan proyek (tersedia di paket Starter dan lebih tinggi). Custom domain dilengkapi dengan sertifikat SSL/TLS otomatis dan disajikan melalui CDN global kami.
Batas & Kuota
Kuota container bergantung pada tier langganan Anda dan dapat berubah saat paket berkembang. Lihat Pricing atau ringkasan kuota dashboard untuk batas container, compute, request, dan data transfer terbaru.
Setiap deployment dapat memiliki beberapa instance yang melakukan scaling otomatis sesuai kebutuhan. Build timeout, HTTP request timeout, dan batas ukuran image diberlakukan oleh platform dan ditampilkan secara kontekstual saat deployment melampauinya.
Troubleshooting
Anda dapat melihat log deployment di dashboard untuk melakukan debugging.
- Build gagal: Periksa build log untuk error pada Dockerfile atau proses build.
- Aplikasi terus restart: Periksa log error dan pastikan aplikasi menangani
SIGTERMdengan mekanisme graceful shutdown.

