feat: add dashboard service to Docker build and push workflow
This commit is contained in:
@@ -254,9 +254,11 @@ jobs:
|
|||||||
|
|
||||||
declare -A SERVICES
|
declare -A SERVICES
|
||||||
SERVICES["scraper-api"]="scraper.yml"
|
SERVICES["scraper-api"]="scraper.yml"
|
||||||
|
SERVICES["dashboard"]="observability.yml"
|
||||||
|
|
||||||
declare -A PATHS
|
declare -A PATHS
|
||||||
PATHS["scraper-api"]="apps/scraper"
|
PATHS["scraper-api"]="apps/scraper"
|
||||||
|
PATHS["dashboard"]="infra/dashboard"
|
||||||
|
|
||||||
# Use git config for possible commits
|
# Use git config for possible commits
|
||||||
git config --local user.email "action@github.com"
|
git config --local user.email "action@github.com"
|
||||||
@@ -265,6 +267,7 @@ jobs:
|
|||||||
for id in "${!SERVICES[@]}"; do
|
for id in "${!SERVICES[@]}"; do
|
||||||
SHOULD_HAVE_RUN=false
|
SHOULD_HAVE_RUN=false
|
||||||
if [ "${{ needs.changes.outputs['scraper-api'] }}" == "true" ] && [ "$id" == "scraper-api" ]; then SHOULD_HAVE_RUN=true; fi
|
if [ "${{ needs.changes.outputs['scraper-api'] }}" == "true" ] && [ "$id" == "scraper-api" ]; then SHOULD_HAVE_RUN=true; fi
|
||||||
|
if [ "${{ needs.changes.outputs['dashboard'] }}" == "true" ] && [ "$id" == "dashboard" ]; then SHOULD_HAVE_RUN=true; fi
|
||||||
|
|
||||||
if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then SHOULD_HAVE_RUN=true; fi
|
if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then SHOULD_HAVE_RUN=true; fi
|
||||||
|
|
||||||
|
|||||||
@@ -40,6 +40,15 @@ services:
|
|||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
networks:
|
networks:
|
||||||
- app-shared-net
|
- app-shared-net
|
||||||
|
depends_on:
|
||||||
|
dapr-placement:
|
||||||
|
condition: service_healthy
|
||||||
|
nats:
|
||||||
|
condition: service_healthy
|
||||||
|
otel-collector:
|
||||||
|
condition: service_started
|
||||||
|
networks:
|
||||||
|
- app-shared-net
|
||||||
command:
|
command:
|
||||||
- './daprd'
|
- './daprd'
|
||||||
- '--app-id=app'
|
- '--app-id=app'
|
||||||
@@ -47,9 +56,10 @@ services:
|
|||||||
- '--dapr-http-port=3500'
|
- '--dapr-http-port=3500'
|
||||||
- '--dapr-grpc-port=50001'
|
- '--dapr-grpc-port=50001'
|
||||||
- '--placement-host-address=dapr-placement:50005'
|
- '--placement-host-address=dapr-placement:50005'
|
||||||
- '--resources-path=/components'
|
- '--config=/dapr/config.yaml'
|
||||||
|
- '--resources-path=/dapr/components'
|
||||||
volumes:
|
volumes:
|
||||||
- ../../infra/dapr/components:/components
|
- ../../infra/dapr:/dapr:ro
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
app-shared-net:
|
app-shared-net:
|
||||||
|
|||||||
+8
-3
@@ -67,6 +67,8 @@ Tambah di `infra/compose/<nama-app>.yml`:
|
|||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
nats:
|
nats:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
otel-collector:
|
||||||
|
condition: service_started
|
||||||
networks:
|
networks:
|
||||||
- app-shared-net
|
- app-shared-net
|
||||||
command:
|
command:
|
||||||
@@ -76,18 +78,21 @@ Tambah di `infra/compose/<nama-app>.yml`:
|
|||||||
- '--dapr-http-port=3500'
|
- '--dapr-http-port=3500'
|
||||||
- '--dapr-grpc-port=50001'
|
- '--dapr-grpc-port=50001'
|
||||||
- '--placement-host-address=dapr-placement:50005'
|
- '--placement-host-address=dapr-placement:50005'
|
||||||
- '--components-path=/components'
|
- '--config=/dapr/config.yaml'
|
||||||
|
- '--resources-path=/dapr/components'
|
||||||
volumes:
|
volumes:
|
||||||
- ../../infra/dapr/components:/components
|
- ../../infra/dapr:/dapr:ro
|
||||||
```
|
```
|
||||||
|
|
||||||
Pastikan juga app container punya `depends_on` ke dapr-placement dan nats:
|
Pastikan juga app container punya `depends_on` ke dapr-placement, nats, dan otel-collector:
|
||||||
```yaml
|
```yaml
|
||||||
depends_on:
|
depends_on:
|
||||||
dapr-placement:
|
dapr-placement:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
nats:
|
nats:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
otel-collector:
|
||||||
|
condition: service_started
|
||||||
```
|
```
|
||||||
|
|
||||||
## 4. Tambahkan route Traefik
|
## 4. Tambahkan route Traefik
|
||||||
|
|||||||
@@ -16,9 +16,6 @@ services:
|
|||||||
- '--config=/etc/otel/config.yml'
|
- '--config=/etc/otel/config.yml'
|
||||||
volumes:
|
volumes:
|
||||||
- ../../infra/otel/otel-collector-config.yml:/etc/otel/config.yml:ro
|
- ../../infra/otel/otel-collector-config.yml:/etc/otel/config.yml:ro
|
||||||
depends_on:
|
|
||||||
jaeger:
|
|
||||||
condition: service_started
|
|
||||||
|
|
||||||
# ── Jaeger (Tracing Backend + Built-in UI) ──
|
# ── Jaeger (Tracing Backend + Built-in UI) ──
|
||||||
jaeger:
|
jaeger:
|
||||||
@@ -41,6 +38,7 @@ services:
|
|||||||
# ── Custom Dashboard (nginx:alpine) ──
|
# ── Custom Dashboard (nginx:alpine) ──
|
||||||
dashboard:
|
dashboard:
|
||||||
container_name: dashboard
|
container_name: dashboard
|
||||||
|
image: ghcr.io/asepharyana/asepharyana-hub/dashboard:latest
|
||||||
build:
|
build:
|
||||||
context: ../..
|
context: ../..
|
||||||
dockerfile: infra/docker/dashboard.Dockerfile
|
dockerfile: infra/docker/dashboard.Dockerfile
|
||||||
|
|||||||
+10
-6
@@ -1,15 +1,19 @@
|
|||||||
# ── NATS Server Configuration ──
|
# ── NATS Server Configuration ──
|
||||||
|
|
||||||
# JetStream
|
# JetStream
|
||||||
jetstream: true
|
jetstream: true
|
||||||
store_dir: /data
|
store_dir: "/data"
|
||||||
|
|
||||||
# OpenTelemetry tracing
|
# OpenTelemetry tracing
|
||||||
otel:
|
otel {
|
||||||
traces:
|
traces {
|
||||||
exporter: otlp
|
exporter: "otlp"
|
||||||
otlp:
|
otlp {
|
||||||
endpoint: otel-collector:4318
|
endpoint: "otel-collector:4318"
|
||||||
insecure: true
|
insecure: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# HTTP monitoring
|
# HTTP monitoring
|
||||||
http_port: 8222
|
http_port: 8222
|
||||||
|
|||||||
Reference in New Issue
Block a user