Skip to content

RizkiMufrizal/Docker-Spring-Cloud

Repository files navigation

Docker-Spring-Cloud

Sebelum menjalankan aplikasi, berikut tool yang harus diinstall terlebih dahulu

Cara Menjalankan Aplikasi Jika menggunakan Linux dan OSX

  • Jalankan file shell docker-build.sh untuk proses build project
  • Jalankan perintah docker-compose up untuk menjalankan 11 container secara berbarengan

Cara Menjalankan Aplikasi Jika menggunakan Windows

  • Jalankan perintah berikut secara berurutan
    gradle clean build docker -p Admin-Dashboard
    gradle clean build docker -p Transaction-Service
    gradle clean build docker -p Catalog-Service
    gradle clean build docker -p OAuth2-Service
    gradle clean build docker -p API-Gateway
  • Jalankan perintah docker-compose up untuk menjalankan 11 container secara berbarengan

Cara Mengakses Aplikasi

  • Jalankan perintah berikut untuk mengenerate token OAuth2 :
curl -X POST \
  http://localhost:8080/v1/api/oauth/token \
  -vu clientid:secret \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d grant_type=client_credentials

dan berikut adalah contoh hasil token nya :

{
  "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiUkVTT1VSQ0VfSURfQVBJX0dBVEVXQVkiXSwic2NvcGUiOlsicmVhZCIsIndyaXRlIl0sImV4cCI6MTUxNTkwMjEwMiwiYXV0aG9yaXRpZXMiOlsiQURNSU5JU1RSQVRPUiIsIkNMSUVOVCIsIkFETUlOIl0sImp0aSI6ImMzMjg1YTU4LWZiNGQtNDQ5ZS1iMTZkLWVlZjNhZDcxMDFhZCIsImNsaWVudF9pZCI6ImNsaWVudGlkIn0.hPzJeSHX8_I_h6VCXIn2nlZJ5pA-0ULWI65Gd15AatiG2g5RhTNT4JUyi-LnNr8ZFwZiPU4KhzZczKNh71yBJ1sskZ3DmqdDtrsOyUciOO11e9HCp4sj8obGDzFwaG1kKKoEDwQarTeUbmjlAY6AGA1BYSFNkiJzHuFtlwOnVYXHoUUZ6CSvOMD03VAuoHgrgUhwjqr8lzouKUwAuR1RvsUJOan-I5bisrLG4mgsX221x9z4x9F2_0ufHDWRxT76bgOThOfqoGdpBn0sNp0IP3NNHXcW4P81QZLYoUQh1Lp1LPdsYMpbA4ywIinPplVOjD7jNhQtEu0mxrY3DxnhyQ",
  "token_type": "bearer",
  "expires_in": 3599,
  "scope": "read write",
  "jti": "c3285a58-fb4d-449e-b16d-eef3ad7101ad"
}
  • Akses Catalog service service dengan menggunakan perintah berikut
curl -X GET \
  http://localhost:8080/v1/catalog/api/barangs \
  -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiUkVTT1VSQ0VfSURfQVBJX0dBVEVXQVkiXSwic2NvcGUiOlsicmVhZCIsIndyaXRlIl0sImV4cCI6MTUxNTkwMjEwMiwiYXV0aG9yaXRpZXMiOlsiQURNSU5JU1RSQVRPUiIsIkNMSUVOVCIsIkFETUlOIl0sImp0aSI6ImMzMjg1YTU4LWZiNGQtNDQ5ZS1iMTZkLWVlZjNhZDcxMDFhZCIsImNsaWVudF9pZCI6ImNsaWVudGlkIn0.hPzJeSHX8_I_h6VCXIn2nlZJ5pA-0ULWI65Gd15AatiG2g5RhTNT4JUyi-LnNr8ZFwZiPU4KhzZczKNh71yBJ1sskZ3DmqdDtrsOyUciOO11e9HCp4sj8obGDzFwaG1kKKoEDwQarTeUbmjlAY6AGA1BYSFNkiJzHuFtlwOnVYXHoUUZ6CSvOMD03VAuoHgrgUhwjqr8lzouKUwAuR1RvsUJOan-I5bisrLG4mgsX221x9z4x9F2_0ufHDWRxT76bgOThOfqoGdpBn0sNp0IP3NNHXcW4P81QZLYoUQh1Lp1LPdsYMpbA4ywIinPplVOjD7jNhQtEu0mxrY3DxnhyQ'

dan berikut adalah contoh hasil token nya :

{
  "content": [
    {
      "idBarang": 1,
      "namaBarang": "Barang 1",
      "jenisBarang": "gas",
      "tanggalKadaluarsa": {
        "year": 2018,
        "month": "JANUARY",
        "leapYear": false,
        "dayOfMonth": 14,
        "dayOfWeek": "SUNDAY",
        "dayOfYear": 14,
        "era": "CE",
        "monthValue": 1,
        "chronology": {
          "calendarType": "iso8601",
          "id": "ISO"
        }
      },
      "hargaSatuanBarang": 5000,
      "jumlahBarangTersedia": 6
    },
    {
      "idBarang": 2,
      "namaBarang": "Barang 2",
      "jenisBarang": "cair",
      "tanggalKadaluarsa": {
        "year": 2018,
        "month": "JANUARY",
        "leapYear": false,
        "dayOfMonth": 14,
        "dayOfWeek": "SUNDAY",
        "dayOfYear": 14,
        "era": "CE",
        "monthValue": 1,
        "chronology": {
          "calendarType": "iso8601",
          "id": "ISO"
        }
      },
      "hargaSatuanBarang": 10000,
      "jumlahBarangTersedia": 7
    }
  ],
  "totalPages": 1,
  "totalElements": 10,
  "last": true,
  "numberOfElements": 10,
  "first": true,
  "sort": null,
  "size": 20,
  "number": 0
}
  • Akses Transaction service service dengan menggunakan perintah berikut
  curl -X GET \
    http://localhost:8080/v1/transaction/api/penjualan/penjualandetails/1 \
    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiUkVTT1VSQ0VfSURfQVBJX0dBVEVXQVkiXSwic2NvcGUiOlsicmVhZCIsIndyaXRlIl0sImV4cCI6MTUxNTkwMjEwMiwiYXV0aG9yaXRpZXMiOlsiQURNSU5JU1RSQVRPUiIsIkNMSUVOVCIsIkFETUlOIl0sImp0aSI6ImMzMjg1YTU4LWZiNGQtNDQ5ZS1iMTZkLWVlZjNhZDcxMDFhZCIsImNsaWVudF9pZCI6ImNsaWVudGlkIn0.hPzJeSHX8_I_h6VCXIn2nlZJ5pA-0ULWI65Gd15AatiG2g5RhTNT4JUyi-LnNr8ZFwZiPU4KhzZczKNh71yBJ1sskZ3DmqdDtrsOyUciOO11e9HCp4sj8obGDzFwaG1kKKoEDwQarTeUbmjlAY6AGA1BYSFNkiJzHuFtlwOnVYXHoUUZ6CSvOMD03VAuoHgrgUhwjqr8lzouKUwAuR1RvsUJOan-I5bisrLG4mgsX221x9z4x9F2_0ufHDWRxT76bgOThOfqoGdpBn0sNp0IP3NNHXcW4P81QZLYoUQh1Lp1LPdsYMpbA4ywIinPplVOjD7jNhQtEu0mxrY3DxnhyQ'

dan berikut adalah contoh hasil token nya :

[
  {
    "idPenjualanDetail": "1.detail",
    "jumlahBarang": 6,
    "totalHargaPerBarang": 1000,
    "idPenjualan": "1",
    "barang": {
      "idBarang": 1,
      "namaBarang": "Barang 1",
      "jenisBarang": "gas",
      "tanggalKadaluarsa": {
        "year": 2018,
        "month": "JANUARY",
        "leapYear": false,
        "dayOfMonth": 14,
        "dayOfWeek": "SUNDAY",
        "dayOfYear": 14,
        "era": "CE",
        "monthValue": 1,
        "chronology": {
          "calendarType": "iso8601",
          "id": "ISO"
        }
      },
      "hargaSatuanBarang": "5000.00",
      "jumlahBarangTersedia": 6
    }
  }
]

List Docker Container

  1. consul : digunakan sebagai consul server
  2. zipkin : digunakan sebagai zipkin server
  3. postgrescatalog : digunakan sebagai database postgresql
  4. mongotransaction : digunakan sebagai database mongodb
  5. mariadboauth2 : digunakan sebagai database mariadb
  6. redissessionoauth2 : digunakan sebagai database redis
  7. admindashboard : digunakan sebagai admin dashboard
  8. catalogservice : digunakan sebagai service catalog
  9. transactionservice : digunakan sebagai service transaction
  10. oauth2service : digunakan sebagai service oauth2
  11. apigateway : digunakan sebagai apigateway

List Screenshot

  • Discovery Service Consul

discovery service

  • Node Consul

node consul

  • KV Consul

KV Consul

  • Spring Boot Admin

Spring Boot Admin

  • Spring Boot Admin Trace

Spring Boot Admin Trace

  • Hystrix

hystrix

  • Journal

Journal

  • Zipkin

Zipkin

  • Zipkin Trace

Zipkin Trace

  • Trace Client To API Gateway

Trace Client To API Gateway

  • Trace API Gateway To Service

Trace API Gateway To Service