-
Notifications
You must be signed in to change notification settings - Fork 6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Docker Updates #308
Docker Updates #308
Conversation
We should link to these instructions from README.md, right? |
Merged build finished. Test PASSed. |
Test PASSed. |
@robertnishihara, ah, I was just updating the description. I'd like to see a few people try it before we link to the README.md, but perhaps we can pass that mark in this code review cycle. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great! I haven't had a chance to try out the cluster version yet.
doc/install-on-docker.md
Outdated
You can install Ray on any platform that runs Docker. We do not presently publish Docker images for Ray, but you can build them yourself using the Ray distribution. Using Docker can provide a reliable way to get up and running quickly. | ||
You can install Ray on any platform that runs Docker. We do not presently publish Docker images for Ray, but you can build them yourself using the Ray distribution. | ||
|
||
Using Docker can streamline the build process reliable way to get up and running quickly. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"the build process in a reliable way"?
doc/install-on-docker.md
Outdated
The Docker Platform release is available for Mac, Windows, and Linux platforms. Please download the appropriate version from the [Docker website](https://www.docker.com/products/overview#/install_the_platform). | ||
### Mac, Linux, Windows platforms | ||
|
||
The Docker Platform release is available for Mac, Windows, and Linux platforms. Please download the appropriate version from the [Docker website](https://www.docker.com/products/overview#/install_the_platform) and follow the corresponding installation instructions. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I remember thinking/hearing that the official docker installation instructions for Ubuntu are bad and that the ones to follow are here https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-16-04
Have you ever had any trouble with the official docker instructions?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, the official Linux instructions are not very relevant to our use case. I'll add a link to the alternate instructions.
doc/install-on-docker.md
Outdated
|
||
The Docker Platform release is available for Mac, Windows, and Linux platforms. Please download the appropriate version from the [Docker website](https://www.docker.com/products/overview#/install_the_platform) and follow the corresponding installation instructions. | ||
|
||
### Docker installation on EC2 with Ubuntu |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These instructions are different from the ones on the Docker website. E.g., the official Docker instructions do not do sudo apt-get -y dist-upgrade
.
Why the difference?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The official Linux instructions seem to focus on connecting to Dockerhub and getting a repository set up. These are simple instructions to get Docker installed and to get it to run without sudo.
The dist-upgrade
command here is likely optional. It' something I always do just so I'm running the latest patched version of the OS. I know things have at times broken without it but I don't remember whether it is necessary right now. I think it's probably safest to leave it in here.
doc/install-on-docker.md
Outdated
|
||
## Launch Ray in Docker | ||
|
||
Start out by launching the deployment container. | ||
|
||
``` | ||
docker run --shm-size=1024m -t -i ray-project/ray:deploy | ||
docker run --shm-size=<shm-size> -t -i ray-project/ray:deploy |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This command doesn't work, I think you need to remove the ray:
and just use ray-project/deploy
doc/install-on-docker.md
Outdated
## Test if the installation succeeded | ||
|
||
To test if the installation was successful, try running some tests. | ||
To test if the installation was successful, try running some tests. Within the container shell enter the following commands: | ||
|
||
``` | ||
python test/runtest.py # This tests basic functionality. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just tried this and it told me
Traceback (most recent call last):
File "test/runtest.py", line 127, in <module>
raise Exception("You have an older version of cloudpickle that is not able to serialize namedtuples. Try running \n\n{}\n\n".format(cloudpickle_command))
Exception: You have an older version of cloudpickle that is not able to serialize namedtuples. Try running
pip install --upgrade cloudpickle
We should make sure that we're installing the correct version of cloudpickle in the docker image. For that it should be sufficient to do pip install cloudpickle
somewhere.
FROM ray-project/deploy | ||
RUN git clone https://github.com/my-user/my-project.git | ||
RUN ./my-project/install.sh | ||
``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't understand this example. What is my-project
supposed to be? And where would the installation of Ray happen?
<repository-uri> \ | ||
/ray/scripts/start_ray.sh --head \ | ||
--redis-port=6379 \ | ||
--num-workers=<num-workers> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
shall we also have people use a fixed object store port?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Both here and on the worker nodes
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a port number we have standardized on?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not yet. Maybe just choose one? E.g., 7183
.
doc/install-on-docker.md
Outdated
@@ -59,7 +126,7 @@ docker run --shm-size=1024m -t -i ray-project/ray:examples | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the command above
docker run --shm-size=1024m -t -i ray-project/ray:examples
should be
docker run --shm-size=1024m -t -i ray-project/examples
docker/base-deps/Dockerfile
Outdated
@@ -10,5 +10,5 @@ RUN echo 'export PATH=/opt/conda/bin:$PATH' > /etc/profile.d/conda.sh \ | |||
&& /bin/bash /tmp/anaconda.sh -b -p /opt/conda \ | |||
&& rm /tmp/anaconda.sh | |||
ENV PATH "/opt/conda/bin:$PATH" | |||
RUN conda install libgcc | |||
RUN conda install -y libgcc | |||
RUN pip install --upgrade pip |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
probably want do pip install some stuff (at least cloudpickle) here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will add cloudpickle.
doc/install-on-docker.md
Outdated
@@ -68,7 +135,7 @@ See the [Hyperparameter optimization documentation](../examples/hyperopt/README. | |||
### Batch L-BFGS | |||
|
|||
``` | |||
cd ~/ray/examples/lbfgs/ | |||
cd /ray/examples/lbfgs/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When I run this example I get a lot of errors like the following.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE3 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.
[INFO] (/ray/src/photon/photon_scheduler.c:202) Started worker with pid 4463
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE3 instructions, but these are available on your machine and could speed up CPU computations.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I looked at forums a bit and these warnings seem to come from some recent changes in Tensorflow. I don't believe this is related to Ray or Docker and it something we may want to come back to.
Merged build finished. Test PASSed. |
Test PASSed. |
Merged build finished. Test PASSed. |
Test PASSed. |
Merged build finished. Test FAILed. |
Test FAILed. |
Merged build finished. Test FAILed. |
Test FAILed. |
81041da
to
d019ea0
Compare
Merged build finished. Test FAILed. |
Test FAILed. |
Merged build finished. Test FAILed. |
Test FAILed. |
Btw, I ran the docker instructions without the |
This change helps improve Docker usability:
start_ray.sh
does not exit when used within DockerNote that this change does not include presently linking to Docker instructions from the top-level README. This is something we should do as soon as we have confidence the instructions work smoothly for people.