version: "3.7" services: vscode: # for prettier build: context: Dockerfile.d/vscode args: UID: ${UID:-0} GID: ${GID:-0} working_dir: /workspace volumes: - .:/workspace user: "${UID:-0}:${GID:-0}" command: - bash - -c - | jq -s '.[0] * .[1]' bff/.eslintrc.json frontend/.eslintrc.json > .eslintrc.json # mv package.json /tmp/package.orig.json # jq -s '.[0].devDependencies * .[1].devDependencies' bff/package.json frontend/package.json > /tmp/devDeps.json # jq --argfile deps /tmp/devDeps.json '.devDependencies = $deps' /tmp/package.orig.json > package.json npm install mysql: image: mysql:5.7 environment: MYSQL_ALLOW_EMPTY_PASSWORD: "true" ports: - "${BIND_IP_ADDR:-127.0.0.1}:3306:3306" volumes: - ./mysql.development/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d:ro - mysql-data:/var/lib/mysql command: - --character-set-server=utf8mb4 - --collation-server=utf8mb4_unicode_ci redis: image: redis:5 ports: - "${BIND_IP_ADDR:-127.0.0.1}:6379:6379" bff: build: context: Dockerfile.d/bff.development args: UID: ${UID:-0} GID: ${GID:-0} depends_on: - mysql - redis working_dir: /workspace volumes: - ./bff:/workspace - ./config.development/bff:/data/config/bff:ro ports: - "${BIND_IP_ADDR:-127.0.0.1}:4000:4000" user: "${UID:-0}:${GID:-0}" environment: - BFF_CONFIG_CREADENTIALS_AMAZON_S3_ACCESS_KEY - BFF_CONFIG_CREADENTIALS_AMAZON_S3_SECRET_ACCESS_KEY - BFF_CONFIG_SOURCE_AMAZON_S3_BUCKET - BFF_CONFIG_SOURCE_AMAZON_S3_PATHNAME - BFF_CONFIG_CREADENTIALS_GOOGLE_CLOUD_STORAGE - BFF_CONFIG_SOURCE_GOOGLE_CLOUD_STORAGE_BUCKET - BFF_CONFIG_SOURCE_GOOGLE_CLOUD_STORAGE_PATHNAME command: - bash - -c - | npm install scripts/wait-for-mysql.sh mysql npm run dev frontend: build: context: Dockerfile.d/frontend.development args: UID: ${UID:-0} GID: ${GID:-0} depends_on: - bff working_dir: /workspace volumes: - ./frontend:/workspace ports: - "${BIND_IP_ADDR:-127.0.0.1}:3000:3000" user: "${UID:-0}:${GID:-0}" environment: - BFF_ENDPOINT_GRAPHQL_HTTP=http://${PUBLIC_IP_ADDR_OR_FQDN}:4000/graphql - BFF_ENDPOINT_GRAPHQL_WEBSOCKET=ws://${PUBLIC_IP_ADDR_OR_FQDN}:4000/graphql command: - bash - -c - | npm install npm run dev volumes: mysql-data: driver: local