version: "3.4" services: mongo: container_name: mongo image: mongo healthcheck: test: echo 'db.runCommand("ping").ok' | mongosh localhost:27017/test --quiet interval: 10s timeout: 2m retries: 30 start_period: 10s volumes: - ./docker-data/mongo:/data/db ports: - 27017:27017 node_create_user: build: &backend_docker_build context: . dockerfile: docker/tdrive-node/Dockerfile # target: development target: production environment: &backend_env_vars - DEV=dev - ACCOUNTS_TYPE=internal - DB_DRIVER=mongodb - DB_MONGO_URI=mongodb://mongo:27017 - PUBSUB_TYPE=local - SEARCH_DRIVER=mongodb - STORAGE_DRIVER=local - STORAGE_LOCAL_PATH=/tmp/td - ENABLE_FEATURE_ANTIVIRUS=false - DIAG_PROBE_SECRET=diag-secret command: /usr/src/app/bin/twake-cli dev set_local_user a@b.com aaaaaaaa volumes: &backend_volumes - ./backend/node/profiles:/usr/src/app/profiles - ./backend/node/src:/usr/src/app/src depends_on: &backend_dependencies mongo: condition: service_healthy node: build: *backend_docker_build ports: - 4000:4000 - 9229:9229 environment: *backend_env_vars healthcheck: test: curl --fail 'http://localhost:4000/diagnostics/t/ready?secret=diag-secret' volumes: *backend_volumes depends_on: <<: *backend_dependencies node_create_user: condition: service_completed_successfully frontend: build: context: . dockerfile: docker/tdrive-frontend/Dockerfile container_name: tdrive-frontend environment: - DEV=production - SSL_CERTS=off - NODE_HOST=http://node:4000 ports: - 80:80 - 443:443 depends_on: node: condition: service_healthy volumes: - ./docker-data/logs/nginx/:/var/log/nginx - ./docker-data/letsencrypt/:/etc/letsencrypt/ - ./docker-data/drive-preview/:/tdrive-core/web/medias/ - ./docker-data/uploads/:/tdrive-core/web/upload/ - ./docker-data/ssl:/etc/nginx/ssl