Startup failure on docker , mongodb connection refused
CuriousDolphin opened this issue · 6 comments
Hi @CuriousDolphin,
I cannot re-produce this problem on my ubuntu server with the same docker-compose.yaml as yours.
Can you give us more detailed info about your running environment?
docker --version
docker compose version
cat /proc/cpuinfo | grep "model name"
Thanks for the updates.
I guess the problem is about CPU arch.
Currently the DDS runs on x86 and arm architectures for Mac OS, and on x86 architecture for Win10 and Ubuntu.
Since you are running our image based on ubuntu, which supposed to be run on x86 instead of arm arch, the DDS fails.
Can you try running DDS directly on your M1 machine? With an isolated Python virtual environment, of course.
We will make an image for arm arch, but I don't know how much time it takes.
Hi @CuriousDolphin , you inspired us that docker compose is more suitable for launching dds with dependent services. So we have migrated our docker image to docker compose services, which is available in dev
branch now.
You can try launching dds with the following commands:
# clone the source code
git clone https://github.com/IDEA-Research/deepdataspace.git
git checkout -b dev
# prepare dataset directory(where you put all your datasets inside)
mkdir -p datasets
export DDS_DATASET_DIR=$PWD/datasets
# choose a visiting port for DDS
export DDS_PORT=8765
# start DDS with docker compose
cd deepdataspace
docker compose up
If everything goes well, you can start visiting DDS at http://127.0.0.1:8765
.
We will officially release this feature in v0.4.0
.
Hi @imhuwq , thanks for the support,
in dev branch, dds starts and works perfectly on my m1 mabook with docker and docker compose, I definitely love the frontend of the annotation tool, good job!
However the initial idea of just shipping one single docker image wasn't so bad, especially for those who use container orchestrators like kubernetes et simila, to be able to put dds into their infrastructure with little effort.
Compose, on the other hand, works very well during the local development phase, or if you have available a full machine only for dds where you can run the services with compose.
perhaps it might make sense to split into two main images, frontend and backend, where mongo, redis celery are encapsulated into the backend ones. In short there can be many approaches, you can take a look at the labelstudio architecture, where it seems to me everything is distributed with a single docker image, but the backend,frontend and datamanager are standalone components
Hi @CuriousDolphin, happy to hear that it works! And great thanks for your suggestions.
Pros of docker compose
is that we can use the official images of redis
, mongodb
and python
,
which are supported by strong communities. And for those who want to deploy DDS in a kubernetes cluster,
the docker-compose.yaml
file also helps illustrating the artitecture of DDS services.
Shipping all in one docker image sounds fantastic, but also brings chanllenges. We have to customize a docker image runs all these services on all platforms.
We will consider it in the future. Thanks again for your suggestions!