https://github.com/mimaraslan/devops-01-docker-hello
Docker, Dockerfile, Java
https://github.com/mimaraslan/devops-01-docker-hello
docker dockerfile java
Last synced: about 22 hours ago
JSON representation
Docker, Dockerfile, Java
- Host: GitHub
- URL: https://github.com/mimaraslan/devops-01-docker-hello
- Owner: mimaraslan
- Created: 2026-05-16T13:44:47.000Z (about 2 months ago)
- Default Branch: master
- Last Pushed: 2026-06-23T17:48:14.000Z (7 days ago)
- Last Synced: 2026-06-23T19:27:08.319Z (7 days ago)
- Topics: docker, dockerfile, java
- Language: Java
- Homepage:
- Size: 14.6 KB
- Stars: 0
- Watchers: 0
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# devops-01-docker-hello
Spring Boot tabanlı basit bir uygulamanın Docker imajına paketlenmesini gösteren demo projesidir. Amaç, JAR dosyasını oluşturup `Dockerfile` ile konteyner haline getirmektir.
## Proje Bilgileri
| Özellik | Değer |
|----------------|--------------------------------|
| Dil | Java 17 |
| Framework | Spring Boot 4.0.6 |
| Build aracı | Maven |
| Uygulama portu | 8080 |
| JAR çıktısı | `target/devops-01-docker-hello-1.0.1.jar` |
## CI/CD Evreni
```
CI/CD: (Jenkins, Git, GitHub, GitOps, GitHub Actions, GitLab, GitLab CI, Bitbucket, Bamboo)
Scripting: (Python, Bash, PowerShell)
Containers: (Docker)
Orchestration: (Kubernetes, Helm, ArgoCD)
Cloud: (AWS, Azure, GCP)
Virtualization: (VMware, VirtualBox)
IaC: (Terraform, Ansible, CloudFormation)
Monitoring: (Prometheus, Grafana, ELK)
```
---
## Gereksinimler
- JDK 17
- Maven (veya projedeki `mvnw` / `mvnw.cmd` wrapper)
- Docker Desktop veya Docker Engine
---
## Yerel Geliştirme
Önce uygulamayı derleyip JAR dosyasını oluşturun:
```bash
./mvnw clean package
```
Windows PowerShell:
```powershell
.\mvnw.cmd clean package
```
Derleme başarılı olduğunda `target/` klasöründe `devops-01-docker-hello-1.0.1.jar` dosyası oluşur.
Uygulamayı doğrudan çalıştırmak için:
```bash
java -jar target/devops-01-docker-hello-1.0.1.jar
```
Uygulama `http://localhost:8080` adresinde ayağa kalkar.
---
## Docker ile Çalıştırma
### 1. Docker Hub'a giriş
Terminalden aşağıdaki komutlardan biriyle giriş yapın:
```bash
docker login -u DOCKER_KULLANICIADI -p DOCKER_PAROLA
```
```bash
docker login --username mimaraslan --password 123456789
```
```bash
docker login -u mimaraslan --password 123456789
```
```bash
docker login --username mimaraslan -p 123456789
```
> **Not:** Şifreyi komut satırında yazmak güvenli değildir. Gerçek ortamlarda `docker login` komutunu şifresiz çalıştırıp etkileşimli giriş yapın veya bir secret yöneticisi kullanın.
### 2. Docker imajı oluşturma
`Dockerfile`, `eclipse-temurin:17-jre-jammy` taban imajını kullanır ve JAR dosyasını `app.jar` olarak kopyalar. İmajı oluşturmak için önce Maven ile derleme yapılmış olmalıdır.
```bash
docker build --build-arg JAR_FILE=target/devops-01-docker-hello-1.0.1.jar --tag mimaraslan/devops-01-docker-hello:v001 .
```
`--build-arg JAR_FILE` parametresi, hangi JAR dosyasının imaja kopyalanacağını belirtir. Bu değer verilmezse `Dockerfile` içindeki varsayılan `target/*.jar` kullanılır.
### 3. Konteyneri çalıştırma
```bash
docker run --rm -p 8080:8080 mimaraslan/devops-01-docker-hello:v001
```
Tarayıcıdan veya terminalden kontrol:
```bash
curl http://localhost:8080
```
### 4. İmajı Docker Hub'a gönderme (isteğe bağlı)
```bash
docker push mimaraslan/devops-01-docker-hello:v001
```
---
## Dockerfile Özeti
```dockerfile
FROM eclipse-temurin:17-jre-jammy # Java 17 JRE taban imajı
ARG JAR_FILE=target/*.jar # Kopyalanacak JAR (build-arg ile değiştirilebilir)
COPY ${JAR_FILE} app.jar # JAR'ı imaja app.jar adıyla ekle
EXPOSE 8080 # Uygulama portu
ENTRYPOINT ["java", "-jar", "app.jar"] # Konteyner başladığında uygulamayı çalıştır
```
---
## Proje Yapısı
```
devops-01-docker-hello/
├── Dockerfile
├── pom.xml
├── mvnw / mvnw.cmd
└── src/
├── main/
│ ├── java/com/mimaraslan/Devops01DockerHelloApplication.java
│ └── resources/application.properties
└── test/
```