Bu proje, Docker kullanarak basit bir Node.js uygulamasının nasıl oluşturulacağını ve çalıştırılacağını göstermektedir. Ayrıca, GitHub Actions kullanarak Docker Hub'a otomatik olarak nasıl image push edileceğini de göstermektedir.
Bu talimatlar, projenin yerel makinenizde nasıl çalıştırılacağını anlatır.
- Node.js
- Docker
- Git
- GitHub hesabı
Proje dosyalarınızı klonlayın:
git clone https://github.com/username/docker-example-app.git
cd docker-example-app
Node.js bağımlılıklarını yükleyin:
npm install
Node.js uygulamasını başlatmak için:
node app.js
Tarayıcınızda http://localhost:3000
adresine giderek uygulamanın çalıştığını kontrol edin.
-
Docker image'ınızı oluşturun:
docker build -t username/docker-example-app .
-
Docker container'ınızı başlatın:
docker run -p 3000:3000 username/docker-example-app
Tarayıcınızda http://localhost:3000
adresine giderek uygulamanın çalıştığını kontrol edin.
-
GitHub'da repository'nizi oluşturun ve bu repository'yi yerel makinenizdeki proje ile bağlayın.
-
GitHub Secrets ayarlarını yapın:
DOCKER_USERNAME
: Docker Hub kullanıcı adınızDOCKER_PASSWORD
: Docker Hub parolanız
-
.github/workflows/docker-image.yml
dosyasını oluşturun ve aşağıdaki içeriği ekleyin:name: Docker Image CI on: push: branches: - main jobs: build: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 - name: Login to Docker Hub uses: docker/login-action@v1 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Build and push Docker image uses: docker/build-push-action@v2 with: context: . push: true platforms: linux/amd64,linux/arm64/v8 tags: username/docker-example-app:latest - name: Logout from Docker Hub run: docker logout
-
Workflow dosyasını commit ve push edin:
git add .github/workflows/docker-image.yml git commit -m "Add GitHub Actions workflow for Docker image" git push origin main
Bu adımlardan sonra, her main
branşına push yaptığınızda GitHub Actions otomatik olarak Docker image'ınızı oluşturacak ve Docker Hub'a pushlayacaktır.