Docker ile Node.js Uygulaması Oluşturma
Bu Rehberde Ne Öğreneceksiniz?
Bu rehberde Node.js tabanlı bir uygulamayı
Amaç, uygulamayı taşınabilir ve güvenli bir yapıya kavuşturmaktır.
- Node.js uygulaması için Docker imajı oluşturma
- Multi-stage Dockerfile ile güvenli kurulum
- Docker Hub üzerinden imaj paylaşma
Teknik Özet
Bu rehber, Ubuntu üzerinde çalışan bir
Sorun, ortam farkları ve manuel kurulum karmaşasıdır.
İzlenen adımlar:
- Proje dosyalarını hazırlama
- Dockerfile yazma
- Konteyner oluşturma
- Docker Hub üzerinden yeniden dağıtım
Ön Gereksinimler
- Ubuntu 22.04+ bir sunucu
- Sudo yetkili kullanıcı
- Docker kurulu
- Node.js ve npm kurulu
- oaicite:2hesabı
1. Adım: Proje ve Bağımlılıkları Hazırlama
Proje dizinini oluşturun:
mkdir node_project && cd node_project
- Bu komut uygulama için bir çalışma alanı oluşturur.
package.json dosyasını açın:
nano package.json
- Bu dosya proje bilgilerini ve bağımlılıkları tanımlar.
{
"name": "nodejs-image-demo",
"version": "1.0.0",
"description": "Node.js Docker demo",
"author": "Rabisu Dev Team <[email protected]>",
"license": "MIT",
"main": "app.js",
"dependencies": {
"express": "^4.18.2"
}
}
- Bağımlılıkları kurun:
npm install
- Bu komut Express kütüphanesini indirir.
2. Adım: Node.js Uygulamasını Oluşturma
- Ana uygulama dosyasını oluşturun:
nano app.js
- Bu dosya HTTP isteklerini yöneten Express sunucusunu başlatır.
const express = require('express');
const app = express();
const port = 8080;
app.get('/', (req, res) => {
res.send('Docker üzerinde çalışan Node.js uygulaması');
});
app.listen(port, () => {
console.log(`Uygulama ${port} portunda çalışıyor`);
});
- Uygulamayı test edin:
node app.js
- Tarayıcıdan erişin:
http://sunucu_ip:8080
3. Adım: Dockerfile Yazma (Multi-Stage)
- Dockerfile oluşturun:
nano Dockerfile
- Bu dosya konteyner ortamını tanımlar.
# Build aşaması
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
# Çalışma aşaması
FROM node:20-alpine
WORKDIR /app
COPY --from=builder /app /app
EXPOSE 8080
CMD ["node", "app.js"]
- Bu yapı:
1. Daha küçük imaj üretir
2. Güvenliği artırır
3. Üretim için uygundur
4. Adım: .dockerignore Dosyası Oluşturma
- Gereksiz dosyaları hariç tutun:
nano .dockerignore
node_modules
npm-debug.log
Dockerfile
.dockerignore
- Bu dosya build süresini kısaltır.
5. Adım: Docker İmajı Oluşturma ve Çalıştırma
- İmajı oluşturun:
docker build -t kullaniciadi/nodejs-demo .
- Bu komut Docker imajını üretir.
Konteyneri başlatın:
docker run -d -p 80:8080 --name nodejs-demo kullaniciadi/nodejs-demo
- Uygulamaya erişin:
http://sunucu_ip
6. Adım: Docker Hub Üzerinden Yeniden Dağıtım
- Docker Hub’a giriş yapın:
docker login
- İmajı yükleyin:
docker push kullaniciadi/nodejs-demo
- Başka bir sunucuda imajı çekin:
docker pull kullaniciadi/nodejs-demo
- Bu yöntemle uygulamayı hızla çoğaltabilirsiniz.
Sıkça Sorulan Sorular (SSS)
1. Docker neden Node.js için tercih edilir? Ortam farklarını ortadan kaldırır ve dağıtımı kolaylaştırır.
2. Alpine imaj neden önerilir? Daha küçük boyut ve düşük güvenlik riski sunar.
3. Konteyner içindeki kod güncellenir mi? Hayır. İmaj yeniden oluşturulmalıdır.
4. Multi-stage build ne sağlar? Gereksiz dosyalar üretim imajına girmez.
Sonuç
Bu rehberle Node.js uygulamanızı taşınabilir, güvenli ve ölçeklenebilir hale getirdiniz. Docker sayesinde aynı imajı farklı sunucularda sorunsuz çalıştırabilirsiniz.
🚀 Bu yapıyı Rabisu Bulut altyapısında dakikalar içinde canlıya alabilirsiniz.