version: "3" services: mongodb: image: mongo container_name: mongodb environment: - PUID=1000 - PGID=1000 volumes: - db:/data/db ports: - 27017:27017 restart: unless-stopped minio: image: 'minio/minio' command: server /data --address ":9000" --console-address ":9001" ports: - 9000:9000 - 9001:9001 volumes: - files:/data elastic: image: 'elasticsearch:7.14.2' command: | /bin/sh -c "./bin/elasticsearch-plugin list | grep -q ingest-attachment || yes | ./bin/elasticsearch-plugin install --silent ingest-attachment; /usr/local/bin/docker-entrypoint.sh eswrapper" volumes: - elastic:/usr/share/elasticsearch/data ports: - 9200:9200 environment: - ELASTICSEARCH_PORT_NUMBER=9200 - BITNAMI_DEBUG=true - discovery.type=single-node - ES_JAVA_OPTS=-Xms1024m -Xmx1024m - http.cors.enabled=true - http.cors.allow-origin=http://localhost:8082 healthcheck: interval: 20s retries: 10 test: curl -s http://localhost:9200/_cluster/health | grep -vq '"status":"red"' account: image: hardcoreeng/account links: - mongodb - minio - transactor ports: - 3000:3000 environment: - SERVER_PORT=3000 - SERVER_SECRET=secret - MONGO_URL=mongodb://mongodb:27017 - TRANSACTOR_URL=ws://transactor:3333 - ENDPOINT_URL=ws://localhost:3333 - MINIO_ENDPOINT=minio - MINIO_ACCESS_KEY=minioadmin - MINIO_SECRET_KEY=minioadmin front: image: hardcoreeng/front links: - mongodb - minio - elastic - transactor ports: - 8081:8080 environment: - SERVER_PORT=8080 - SERVER_SECRET=secret - ACCOUNTS_URL=http://localhost:3000 - FRONT_URL=http://localhost:8081 - UPLOAD_URL=/files - TRANSACTOR_URL=ws://localhost:3333 - ELASTIC_URL=http://elastic:9200 - MINIO_ENDPOINT=minio - MINIO_ACCESS_KEY=minioadmin - MINIO_SECRET_KEY=minioadmin transactor: image: hardcoreeng/transactor links: - mongodb - elastic - minio - apm-server ports: - 3333:3333 environment: - SERVER_PORT=3333 - SERVER_SECRET=secret - ELASTIC_URL=http://elastic:9200 - MONGO_URL=mongodb://mongodb:27017 - METRICS_CONSOLE=true - MINIO_ENDPOINT=minio - MINIO_ACCESS_KEY=minioadmin - MINIO_SECRET_KEY=minioadmin - APM_SERVER_URL=http://apm-server:8200 apm-server: image: docker.elastic.co/apm/apm-server:7.14.2 depends_on: - "elastic" - "kibana" cap_add: ["CHOWN", "DAC_OVERRIDE", "SETGID", "SETUID"] cap_drop: ["ALL"] ports: - 8200:8200 command: | apm-server -e -E apm-server.rum.enabled=true -E setup.kibana.host=kibana:5601 -E setup.template.settings.index.number_of_replicas=0 -E apm-server.kibana.enabled=true -E apm-server.kibana.host=kibana:5601 -E output.elasticsearch.hosts=["elastic:9200"] healthcheck: interval: 10s retries: 12 test: curl --write-out 'HTTP %{http_code}' --fail --silent --output /dev/null http://localhost:8200/ kibana: image: docker.elastic.co/kibana/kibana:7.14.2 depends_on: - "elastic" environment: ELASTICSEARCH_URL: http://elastic:9200 ELASTICSEARCH_HOSTS: http://elastic:9200 ports: - 5601:5601 healthcheck: interval: 10s retries: 20 test: curl --write-out 'HTTP %{http_code}' --fail --silent --output /dev/null http://localhost:5601/api/status volumes: db: files: elastic: