-GRAFANA_SERVICE_PORT=3000
-GRAFANA_SERVICE_HOST=grafana
-
-# Jaeger
-JAEGER_SERVICE_PORT=16686
-JAEGER_SERVICE_HOST=jaeger
-
-# Prometheus
-PROMETHEUS_SERVICE_PORT=9090
-PROMETHEUS_SERVICE_HOST=prometheus
-PROMETHEUS_ADDR=${PROMETHEUS_SERVICE_HOST}:${PROMETHEUS_SERVICE_PORT}
\ No newline at end of file
+TAG=amd64
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
-
+ - name: Create tag
+ run: |
+ export TAG="${{ matrix.platform }}"
+ export TAG=${TAG/linux\//}
+ echo ${TAG//\//-} > .env
- name: Build and push
uses: docker/bake-action@v2
with:
mock:
image: nginx
cache:
- image: ghcr.io/discordnova/nova/cache
+ image: ghcr.io/discordnova/nova/cache:${TAG:-latest}
restart: always
build:
context: .
- x-bake:
- platforms:
- - linux/amd64
- - linux/arm64/v8
- - linux/arm/v7
-
args:
- COMPONENT=cache
volumes:
- otelcol
gateway:
- image: ghcr.io/discordnova/nova/gateway
+ image: ghcr.io/discordnova/nova/gateway:${TAG:-latest}
restart: always
build:
context: .
args:
- COMPONENT=gateway
- x-bake:
- platforms:
- - linux/amd64
- - linux/arm64/v8
- - linux/arm/v7
-
volumes:
- ./config/default.yml:/config/default.yml
environment:
- otelcol
rest:
- image: ghcr.io/discordnova/nova/rest
+ image: ghcr.io/discordnova/nova/rest:${TAG:-latest}
restart: always
build:
context: .
args:
- COMPONENT=rest
- x-bake:
- platforms:
- - linux/amd64
- - linux/arm64/v8
- - linux/arm/v7
-
volumes:
- ./config/default.yml:/config/default.yml
environment:
- 8090:8090
webhook:
- image: ghcr.io/discordnova/nova/webhook
+ image: ghcr.io/discordnova/nova/webhook:${TAG:-latest}
restart: always
build:
context: .
args:
- - RUST_LOG=debug
- COMPONENT=webhook
- x-bake:
- platforms:
- - linux/amd64
- - linux/arm64/v8
- - linux/arm/v7
-
volumes:
- ./config/default.yml:/config/default.yml
environment:
- 9002:9000
- 8091:8091
ratelimit:
- image: ghcr.io/discordnova/nova/ratelimit
+ image: ghcr.io/discordnova/nova/ratelimit:${TAG:-latest}
restart: always
build:
context: .
args:
- COMPONENT=ratelimit
- x-bake:
- platforms:
- - linux/amd64
- - linux/arm64/v8
- - linux/arm/v7
-
volumes:
- ./config/default.yml:/config/default.yml
environment:
memory: 275M
restart: always
ports:
- - "${JAEGER_SERVICE_PORT}:${JAEGER_SERVICE_PORT}" # Jaeger UI
- "4317" # OTLP gRPC default port
environment:
- COLLECTOR_OTLP_ENABLED=true
- ./otel/grafana/grafana.ini:/etc/grafana/grafana.ini
- ./otel/grafana/provisioning/:/etc/grafana/provisioning/
ports:
- - "${GRAFANA_SERVICE_PORT}:${GRAFANA_SERVICE_PORT}"
+ - "3000:3000"
# OpenTelemetry Collector
otelcol:
- --web.route-prefix=/
volumes:
- ./otel/prometheus/prometheus-config.yaml:/etc/prometheus/prometheus-config.yaml
- ports:
- - "${PROMETHEUS_SERVICE_PORT}:${PROMETHEUS_SERVICE_PORT}"