# Microservices

# PMB Schools

# Setting Up

# Microservice - PMB Schools

## Installation
```bash
docker run \
  --name microservice-sekolah \
  -e OCTANE_SERVER=swoole\
  -e APP_KEY=base64:pQ5RRwUuTRaOdkESrBActaiTXB0qOpvVPxkb4u07GvY= \
  -e APP_DEBUG=false \
  -e DB_CONNECTION=mysql \
  -e DB_HOST=HOST_IP \
  -e DB_PORT=HOST_PORT \
  -e DB_DATABASE=DATABASE \
  -e DB_USERNAME=dbuser \
  -e DB_PASSWORD=dbpass \
  -p 8000:8000 \
  shadowbane/microservice-pmb-school:latest
```

Sesuaikan value dari `DB_HOST`, `DB_PORT`, `DB_DATABASE`, `DB_USERNAME`, dan `DB_PASSWORD`.

## First Time Setup

Buka tab baru pada terminal. Jalankan `docker exec -it microservice-sekolah bash`. Kemudian, jalankan:

``` bash
php artisan migrate:fresh --seed
```

### Testing via browser

Buka browser, test akses ke: [http://localhost:8000/api/v1/school](http://localhost:8000/api/v1/school).

### Siakad Configuration
Silahkan buka [https://siakad.test/setting?key=microservice&persistent-table=true](https://siakad.test/setting?key=microservice&persistent-table=true)

pastikan konfigurasi sesuai dengan pada gambar berikut:
[![](https://yv-knowledgebase.s3.amazonaws.com/uploads/images/gallery/2021-11/scaled-1680-/image-1637120338351.png)](https://yv-knowledgebase.s3.amazonaws.com/uploads/images/gallery/2021-11/image-1637120338351.png)

# Troubleshooting

Jika konfigurasi sudah sesuai, microservice berjalan dan ujicoba pada browser berhasil, lakukan penghapusan cache pada SIAKAD dengan perintah:
```bash
rm -rf storage/app/sushi-cache/sushi-app-*.sqlite
```

# Updating

#### Removing Current Containers and Images

```bash
docker stop microservice-sekolah && docker rm microservice-sekolah
```

#### Removing Images

```bash
docker image rm shadowbane/microservice-pmb-school:latest
```

#### Re-run the container
```bash
docker run \
  --name microservice-sekolah \
  -e OCTANE_SERVER=swoole\
  -e APP_KEY=base64:pQ5RRwUuTRaOdkESrBActaiTXB0qOpvVPxkb4u07GvY= \
  -e APP_DEBUG=false \
  -e DB_CONNECTION=mysql \
  -e DB_HOST=HOST_IP \
  -e DB_PORT=HOST_PORT \
  -e DB_DATABASE=DATABASE \
  -e DB_USERNAME=dbuser \
  -e DB_PASSWORD=dbpass \
  -p 8000:8000 \
  shadowbane/microservice-pmb-school:latest
```