services: # Run webpack-dev-server and compile static assets. # # This is the primary server and it proxies the # Django app so that Webpack can watch for file changes. assets: build: context: . target: assets image: mozmeao/bedrock_assets:${GIT_COMMIT:-latest} platform: linux/amd64 command: npm run watch ports: - "8000-8010:8000-8010" volumes: - ./media/:/app/media:delegated - ./bedrock/:/app/bedrock:delegated - ./assets/:/app/assets:delegated environment: WP_PROXY_URL: "http://app:8080" # the django app app: build: context: . target: devapp image: mozmeao/bedrock_test:${GIT_COMMIT:-latest} platform: linux/amd64 command: python manage.py runserver 0.0.0.0:8080 env_file: - docker/envfiles/local.env - .env ports: - "8080:8080" volumes: - ./bedrock/:/app/bedrock:delegated - ./bin/:/app/bin:delegated - ./docker/:/app/docker:delegated - ./etc/:/app/etc:delegated - ./lib/:/app/lib:delegated - ./docs/:/app/docs:delegated - ./media/:/app/media:delegated - ./root_files/:/app/root_files:delegated - ./scripts/:/app/scripts:delegated - ./wsgi/:/app/wsgi:delegated - ./locale/:/app/locale:delegated - ./l10n/:/app/l10n:delegated - ./assets/:/app/assets:delegated # Standalone postgres database - for local runserver development. # TODO: add this as a dependency of app/test/release db: image: postgres:15-alpine environment: POSTGRES_PASSWORD: postgres ports: - "5432:5432" redis: image: redis platform: linux/amd64 worker: image: mozmeao/bedrock_test:${GIT_COMMIT:-latest} platform: linux/amd64 restart: unless-stopped volumes: - .:/app env_file: - docker/envfiles/local.env - .env depends_on: - db - redis command: ./bin/run-worker.sh # run the tests against local changes test: image: mozmeao/bedrock_test:${GIT_COMMIT:-latest} env_file: docker/envfiles/test.env volumes: - ./bedrock/:/app/bedrock:delegated - ./bin/:/app/bin:delegated - ./docker/:/app/docker:delegated - ./etc/:/app/etc:delegated - ./lib/:/app/lib:delegated - ./media/:/app/media:delegated - ./root_files/:/app/root_files:delegated - ./scripts/:/app/scripts:delegated - ./tests/:/app/tests:delegated - ./test_infra/:/app/test_infra:delegated - ./wsgi/:/app/wsgi:delegated - ./l10n/:/app/l10n:delegated # run tests with no volumes test-image: image: mozmeao/bedrock_test:${GIT_COMMIT:-latest} env_file: docker/envfiles/test.env # the django app release: build: context: . target: release args: GIT_SHA: ${GIT_COMMIT:-latest} image: mozmeao/bedrock:${GIT_COMMIT:-latest} platform: linux/amd64 release-local: image: mozmeao/bedrock:${GIT_COMMIT:-latest} env_file: - docker/envfiles/local.env - .env environment: RUN_SUPERVISOR: "true" ports: - "8000:8000" volumes: - ./bedrock/:/app/bedrock:delegated - ./bin/:/app/bin:delegated - ./docker/:/app/docker:delegated - ./etc/:/app/etc:delegated - ./lib/:/app/lib:delegated - ./root_files/:/app/root_files:delegated - ./scripts/:/app/scripts:delegated - ./wsgi/:/app/wsgi:delegated - ./locale/:/app/locale:delegated - ./l10n/:/app/l10n:delegated docs: image: mozmeao/bedrock_test:${GIT_COMMIT:-latest} platform: linux/amd64 command: sphinx-autobuild "docs" "docs/_build/html" --host 0.0.0.0 --port 8100 ports: - "8100:8100" volumes: - ./docs/:/app/docs:delegated builder: build: context: . target: python-builder image: mozmeao/bedrock_build:${GIT_COMMIT:-latest} platform: linux/amd64 app-base: build: context: . target: app-base image: mozmeao/bedrock_code:${GIT_COMMIT:-latest} platform: linux/amd64 # Python dependency management compile-requirements: image: mozmeao/bedrock_build:${GIT_COMMIT:-latest} platform: linux/amd64 command: ./bin/compile-requirements.sh volumes: - .:/app