feat: add dashboard service to Docker build and push workflow

This commit is contained in:
asepharyana
2026-07-22 18:12:44 +07:00
parent 5d5a0f48b5
commit 4ef4f615c1
5 changed files with 34 additions and 14 deletions
+3
View File
@@ -254,9 +254,11 @@ jobs:
declare -A SERVICES
SERVICES["scraper-api"]="scraper.yml"
SERVICES["dashboard"]="observability.yml"
declare -A PATHS
PATHS["scraper-api"]="apps/scraper"
PATHS["dashboard"]="infra/dashboard"
# Use git config for possible commits
git config --local user.email "action@github.com"
@@ -265,6 +267,7 @@ jobs:
for id in "${!SERVICES[@]}"; do
SHOULD_HAVE_RUN=false
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
+12 -2
View File
@@ -40,6 +40,15 @@ services:
condition: service_healthy
networks:
- app-shared-net
depends_on:
dapr-placement:
condition: service_healthy
nats:
condition: service_healthy
otel-collector:
condition: service_started
networks:
- app-shared-net
command:
- './daprd'
- '--app-id=app'
@@ -47,9 +56,10 @@ services:
- '--dapr-http-port=3500'
- '--dapr-grpc-port=50001'
- '--placement-host-address=dapr-placement:50005'
- '--resources-path=/components'
- '--config=/dapr/config.yaml'
- '--resources-path=/dapr/components'
volumes:
- ../../infra/dapr/components:/components
- ../../infra/dapr:/dapr:ro
networks:
app-shared-net:
+8 -3
View File
@@ -67,6 +67,8 @@ Tambah di `infra/compose/<nama-app>.yml`:
condition: service_healthy
nats:
condition: service_healthy
otel-collector:
condition: service_started
networks:
- app-shared-net
command:
@@ -76,18 +78,21 @@ Tambah di `infra/compose/<nama-app>.yml`:
- '--dapr-http-port=3500'
- '--dapr-grpc-port=50001'
- '--placement-host-address=dapr-placement:50005'
- '--components-path=/components'
- '--config=/dapr/config.yaml'
- '--resources-path=/dapr/components'
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
depends_on:
dapr-placement:
condition: service_healthy
nats:
condition: service_healthy
otel-collector:
condition: service_started
```
## 4. Tambahkan route Traefik
+1 -3
View File
@@ -16,9 +16,6 @@ services:
- '--config=/etc/otel/config.yml'
volumes:
- ../../infra/otel/otel-collector-config.yml:/etc/otel/config.yml:ro
depends_on:
jaeger:
condition: service_started
# ── Jaeger (Tracing Backend + Built-in UI) ──
jaeger:
@@ -41,6 +38,7 @@ services:
# ── Custom Dashboard (nginx:alpine) ──
dashboard:
container_name: dashboard
image: ghcr.io/asepharyana/asepharyana-hub/dashboard:latest
build:
context: ../..
dockerfile: infra/docker/dashboard.Dockerfile
+10 -6
View File
@@ -1,15 +1,19 @@
# ── NATS Server Configuration ──
# JetStream
jetstream: true
store_dir: /data
store_dir: "/data"
# OpenTelemetry tracing
otel:
traces:
exporter: otlp
otlp:
endpoint: otel-collector:4318
otel {
traces {
exporter: "otlp"
otlp {
endpoint: "otel-collector:4318"
insecure: true
}
}
}
# HTTP monitoring
http_port: 8222