|
| 1 | +version: "3.7" |
| 2 | + |
| 3 | +services: |
| 4 | + # ----------------- PIPELINE SERVICE Provider -------------------- |
| 5 | + pipeline-provider: |
| 6 | + build: |
| 7 | + context: . |
| 8 | + dockerfile: ./pipeline/pact/Dockerfile.provider |
| 9 | + depends_on: |
| 10 | + - rabbitmq-provider |
| 11 | + - pipeline-db-provider |
| 12 | + - pipeline-outboxer-provider |
| 13 | + environment: |
| 14 | + CONNECTION_RETRIES: '30' |
| 15 | + CONNECTION_BACKOFF_IN_MS: '2000' |
| 16 | + |
| 17 | + POSTGRES_HOST: "pipeline-db-provider" |
| 18 | + POSTGRES_PORT: 5432 |
| 19 | + POSTGRES_USER: "pipeline-service" |
| 20 | + POSTGRES_PW: "pw" |
| 21 | + POSTGRES_DB: "ods-pipelines" |
| 22 | + POSTGRES_SCHEMA: "public" |
| 23 | + POSTGRES_SSL: "false" |
| 24 | + |
| 25 | + AMQP_URL: "amqp://rabbit_adm:R4bb!7_4DM_p4SS@rabbitmq-provider:5672" |
| 26 | + |
| 27 | + AMQP_PIPELINE_EXECUTION_SUCCESS_TOPIC: 'pipeline.execution.success' |
| 28 | + AMQP_PIPELINE_EXECUTION_ERROR_TOPIC: 'pipeline.execution.error' |
| 29 | + AMQP_PIPELINE_CONFIG_CREATED_TOPIC: 'pipeline.config.created' |
| 30 | + AMQP_PIPELINE_CONFIG_UPDATED_TOPIC: 'pipeline.config.updated' |
| 31 | + AMQP_PIPELINE_CONFIG_DELETED_TOPIC: 'pipeline.config.deleted' |
| 32 | + |
| 33 | + AMQP_DATASOURCE_EXECUTION_EXCHANGE: 'ods_global' |
| 34 | + AMQP_DATASOURCE_EXECUTION_QUEUE: 'pipeline.datasource-execution' |
| 35 | + AMQP_DATASOURCE_EXECUTION_QUEUE_TOPIC: 'datasource.execution.success' |
| 36 | + AMQP_DATASOURCE_EXECUTION_SUCCESS_TOPIC: 'datasource.execution.success' |
| 37 | + |
| 38 | + AMQP_PIPELINE_EXECUTION_EXCHANGE: 'ods_global' |
| 39 | + AMQP_PIPELINE_EXECUTION_QUEUE: 'notification.pipeline-execution' |
| 40 | + volumes: |
| 41 | + - ./pacts:/app/pacts |
| 42 | + |
| 43 | + pipeline-db-provider: |
| 44 | + image: postgres:13-alpine |
| 45 | + environment: |
| 46 | + POSTGRES_USER: 'pipeline-service' |
| 47 | + POSTGRES_PASSWORD: 'pw' |
| 48 | + POSTGRES_DB: 'ods-pipelines' |
| 49 | + command: |
| 50 | + # This enables and configures Postgres logical decoding feature that is needed for outboxer/debezium to work |
| 51 | + - '-cwal_level=logical' |
| 52 | + - '-cmax_wal_senders=1' |
| 53 | + - '-cmax_replication_slots=1' |
| 54 | + |
| 55 | + pipeline-outboxer-provider: |
| 56 | + image: ghcr.io/jvalue/outboxer-postgres2rabbitmq |
| 57 | + environment: |
| 58 | + - OUTBOXER_DATABASE_HOSTNAME=pipeline-db-provider |
| 59 | + - OUTBOXER_DATABASE_PORT=5432 |
| 60 | + - OUTBOXER_DATABASE_USER=pipeline-service |
| 61 | + - OUTBOXER_DATABASE_PASSWORD=pw |
| 62 | + - OUTBOXER_DATABASE_DBNAME=ods-pipelines |
| 63 | + - OUTBOXER_DATABASE_SERVER_NAME=pipeline-outboxer |
| 64 | + - OUTBOXER_PUBLISHER_AMQP_URL=amqp://rabbit_adm:R4bb!7_4DM_p4SS@rabbitmq-provider:5672 |
| 65 | + - OUTBOXER_PUBLISHER_AMQP_EXCHANGE=ods_global |
| 66 | + - OUTBOXER_PUBLISHER_AMQP_RETRIES=30 |
| 67 | + - OUTBOXER_PUBLISHER_AMQP_RETRY_DELAY_MS=2000 |
| 68 | + depends_on: |
| 69 | + - pipeline-db-provider |
| 70 | + - rabbitmq-provider |
| 71 | + |
| 72 | +# -------------------- RABBIT-MQ ------------------------------------------- |
| 73 | + rabbitmq-provider: |
| 74 | + image: rabbitmq:3.8-management-alpine |
| 75 | + environment: |
| 76 | + RABBITMQ_ERLANG_COOKIE: 'S0m3_R4bBi7_C0ok13' |
| 77 | + RABBITMQ_DEFAULT_USER: 'rabbit_adm' |
| 78 | + RABBITMQ_DEFAULT_PASS: 'R4bb!7_4DM_p4SS' |
| 79 | + ports: |
| 80 | + - "15672:15672" |
| 81 | + - "5672:5672" |
0 commit comments