From 163f7fff2a651a42a7ef21236a9715a5b53d5cd0 Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Wed, 24 May 2023 13:25:41 +0200 Subject: [PATCH] Fix proxy issues on dev/docker-dev --- hosting/docker-compose.build.yaml | 77 ++++++++++++++++++++++++++++++ hosting/docker-compose.dev.yaml | 79 +++++-------------------------- package.json | 2 +- 3 files changed, 91 insertions(+), 67 deletions(-) create mode 100644 hosting/docker-compose.build.yaml diff --git a/hosting/docker-compose.build.yaml b/hosting/docker-compose.build.yaml new file mode 100644 index 0000000000..391d263098 --- /dev/null +++ b/hosting/docker-compose.build.yaml @@ -0,0 +1,77 @@ +version: "3" + +# optional ports are specified throughout for more advanced use cases. + +services: + app-service: + build: ../packages/server + container_name: build-bbapps + environment: + SELF_HOSTED: 1 + COUCH_DB_URL: http://${COUCH_DB_USER}:${COUCH_DB_PASSWORD}@couchdb-service:5984 + WORKER_URL: http://worker-service:4003 + MINIO_URL: http://minio-service:9000 + MINIO_ACCESS_KEY: ${MINIO_ACCESS_KEY} + MINIO_SECRET_KEY: ${MINIO_SECRET_KEY} + INTERNAL_API_KEY: ${INTERNAL_API_KEY} + BUDIBASE_ENVIRONMENT: ${BUDIBASE_ENVIRONMENT} + PORT: 4002 + API_ENCRYPTION_KEY: ${API_ENCRYPTION_KEY} + JWT_SECRET: ${JWT_SECRET} + LOG_LEVEL: info + SENTRY_DSN: https://a34ae347621946bf8acded18e5b7d4b8@o420233.ingest.sentry.io/5338131 + ENABLE_ANALYTICS: "true" + REDIS_URL: redis-service:6379 + REDIS_PASSWORD: ${REDIS_PASSWORD} + BB_ADMIN_USER_EMAIL: ${BB_ADMIN_USER_EMAIL} + BB_ADMIN_USER_PASSWORD: ${BB_ADMIN_USER_PASSWORD} + PLUGINS_DIR: ${PLUGINS_DIR} + depends_on: + - worker-service + - redis-service + # volumes: + # - /some/path/to/plugins:/plugins + + worker-service: + build: ../packages/worker + container_name: build-bbworker + environment: + SELF_HOSTED: 1 + PORT: 4003 + CLUSTER_PORT: ${MAIN_PORT} + API_ENCRYPTION_KEY: ${API_ENCRYPTION_KEY} + JWT_SECRET: ${JWT_SECRET} + MINIO_ACCESS_KEY: ${MINIO_ACCESS_KEY} + MINIO_SECRET_KEY: ${MINIO_SECRET_KEY} + MINIO_URL: http://minio-service:9000 + APPS_URL: http://app-service:4002 + COUCH_DB_USERNAME: ${COUCH_DB_USER} + COUCH_DB_PASSWORD: ${COUCH_DB_PASSWORD} + COUCH_DB_URL: http://${COUCH_DB_USER}:${COUCH_DB_PASSWORD}@couchdb-service:5984 + SENTRY_DSN: https://a34ae347621946bf8acded18e5b7d4b8@o420233.ingest.sentry.io/5338131 + INTERNAL_API_KEY: ${INTERNAL_API_KEY} + REDIS_URL: redis-service:6379 + REDIS_PASSWORD: ${REDIS_PASSWORD} + depends_on: + - redis-service + - minio-service + + proxy-service-docker: + ports: + - "${MAIN_PORT}:10000" + container_name: build-bbproxy + image: budibase/proxy + environment: + - PROXY_RATE_LIMIT_WEBHOOKS_PER_SECOND=10 + - PROXY_RATE_LIMIT_API_PER_SECOND=20 + - APPS_UPSTREAM_URL=http://app-service:4002 + - WORKER_UPSTREAM_URL=http://worker-service:4003 + - MINIO_UPSTREAM_URL=http://minio-service:9000 + - COUCHDB_UPSTREAM_URL=http://couchdb-service:5984 + - WATCHTOWER_UPSTREAM_URL=http://watchtower-service:8080 + - RESOLVER=127.0.0.11 + depends_on: + - minio-service + - worker-service + - app-service + - couchdb-service diff --git a/hosting/docker-compose.dev.yaml b/hosting/docker-compose.dev.yaml index a8435fa083..085c0fce35 100644 --- a/hosting/docker-compose.dev.yaml +++ b/hosting/docker-compose.dev.yaml @@ -3,59 +3,6 @@ version: "3" # optional ports are specified throughout for more advanced use cases. services: - app-service: - build: ../packages/server - container_name: build-bbapps - profiles: ["services"] - environment: - SELF_HOSTED: 1 - COUCH_DB_URL: http://${COUCH_DB_USER}:${COUCH_DB_PASSWORD}@couchdb-service:5984 - WORKER_URL: http://worker-service:4003 - MINIO_URL: http://minio-service:9000 - MINIO_ACCESS_KEY: ${MINIO_ACCESS_KEY} - MINIO_SECRET_KEY: ${MINIO_SECRET_KEY} - INTERNAL_API_KEY: ${INTERNAL_API_KEY} - BUDIBASE_ENVIRONMENT: ${BUDIBASE_ENVIRONMENT} - PORT: 4002 - API_ENCRYPTION_KEY: ${API_ENCRYPTION_KEY} - JWT_SECRET: ${JWT_SECRET} - LOG_LEVEL: info - SENTRY_DSN: https://a34ae347621946bf8acded18e5b7d4b8@o420233.ingest.sentry.io/5338131 - ENABLE_ANALYTICS: "true" - REDIS_URL: redis-service:6379 - REDIS_PASSWORD: ${REDIS_PASSWORD} - BB_ADMIN_USER_EMAIL: ${BB_ADMIN_USER_EMAIL} - BB_ADMIN_USER_PASSWORD: ${BB_ADMIN_USER_PASSWORD} - PLUGINS_DIR: ${PLUGINS_DIR} - depends_on: - - worker-service - - redis-service - - worker-service: - build: ../packages/worker - container_name: build-bbworker - profiles: ["services"] - environment: - SELF_HOSTED: 1 - PORT: 4003 - CLUSTER_PORT: ${MAIN_PORT} - API_ENCRYPTION_KEY: ${API_ENCRYPTION_KEY} - JWT_SECRET: ${JWT_SECRET} - MINIO_ACCESS_KEY: ${MINIO_ACCESS_KEY} - MINIO_SECRET_KEY: ${MINIO_SECRET_KEY} - MINIO_URL: http://minio-service:9000 - APPS_URL: http://app-service:4002 - COUCH_DB_USERNAME: ${COUCH_DB_USER} - COUCH_DB_PASSWORD: ${COUCH_DB_PASSWORD} - COUCH_DB_URL: http://${COUCH_DB_USER}:${COUCH_DB_PASSWORD}@couchdb-service:5984 - SENTRY_DSN: https://a34ae347621946bf8acded18e5b7d4b8@o420233.ingest.sentry.io/5338131 - INTERNAL_API_KEY: ${INTERNAL_API_KEY} - REDIS_URL: redis-service:6379 - REDIS_PASSWORD: ${REDIS_PASSWORD} - depends_on: - - redis-service - - minio-service - minio-service: container_name: budi-minio-dev restart: on-failure @@ -76,24 +23,24 @@ services: retries: 3 proxy-service: + container_name: budi-nginx-dev + restart: on-failure + image: budibase/proxy:latest + volumes: + - ./nginx.dev.conf:/etc/nginx/templates/nginx.conf.template + - ./proxy/error.html:/usr/share/nginx/html/error.html ports: - "${MAIN_PORT}:10000" - container_name: build-bbproxy - image: budibase/proxy - environment: - - PROXY_RATE_LIMIT_WEBHOOKS_PER_SECOND=10 - - PROXY_RATE_LIMIT_API_PER_SECOND=20 - - APPS_UPSTREAM_URL=http://app-service:4002 - - WORKER_UPSTREAM_URL=http://worker-service:4003 - - MINIO_UPSTREAM_URL=http://minio-service:9000 - - COUCHDB_UPSTREAM_URL=http://couchdb-service:5984 - - WATCHTOWER_UPSTREAM_URL=http://watchtower-service:8080 - - RESOLVER=127.0.0.11 depends_on: - minio-service - - worker-service - - app-service - couchdb-service + extra_hosts: + - "host.docker.internal:host-gateway" + environment: + - PROXY_ADDRESS=host.docker.internal + - APPS_UPSTREAM_URL=http://app-service:4002 + - WORKER_UPSTREAM_URL=http://worker-service:4003 + - RESOLVER=127.0.0.11 couchdb-service: # platform: linux/amd64 diff --git a/package.json b/package.json index 367457f1b3..70eceef4fd 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "dev:noserver": "yarn run kill-builder && lerna run --stream dev:stack:up && lerna run --stream --parallel dev:builder --ignore @budibase/backend-core --ignore @budibase/server --ignore @budibase/worker", "dev:server": "yarn run kill-server && lerna run --stream --parallel dev:builder --scope @budibase/worker --scope @budibase/server", "dev:built": "yarn run kill-all && cd packages/server && yarn dev:stack:up && cd ../../ && lerna run --stream --parallel dev:built", - "dev:docker": "yarn build && docker-compose -f hosting/docker-compose.dev.yaml --profile services up --build", + "dev:docker": "yarn build && docker-compose -f hosting/docker-compose.dev.yaml -f hosting/docker-compose.build.yaml up --build --scale proxy-service=0 ", "test": "lerna run --stream test --stream", "lint:eslint": "eslint packages && eslint qa-core", "lint:prettier": "prettier --check \"packages/**/*.{js,ts,svelte}\" && prettier --write \"examples/**/*.{js,ts,svelte}\" && prettier --check \"qa-core/**/*.{js,ts,svelte}\"",