base.gpu.Dockerfile 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. FROM nvidia/cuda:11.6.1-cudnn8-devel-ubuntu20.04
  2. ARG REMOTE_CACHE_URL
  3. ARG BUILDKITE_PULL_REQUEST
  4. ARG BUILDKITE_COMMIT
  5. ARG BUILDKITE_PULL_REQUEST_BASE_BRANCH
  6. ARG PYTHON=3.7
  7. ENV DEBIAN_FRONTEND=noninteractive
  8. ENV TZ=America/Los_Angeles
  9. ENV BUILDKITE=true
  10. ENV CI=true
  11. ENV PYTHON=$PYTHON
  12. ENV RAY_USE_RANDOM_PORTS=1
  13. ENV RAY_DEFAULT_BUILD=1
  14. ENV RAY_INSTALL_JAVA=0
  15. ENV BUILDKITE_PULL_REQUEST=${BUILDKITE_PULL_REQUEST}
  16. ENV BUILDKITE_COMMIT=${BUILDKITE_COMMIT}
  17. ENV BUILDKITE_PULL_REQUEST_BASE_BRANCH=${BUILDKITE_PULL_REQUEST_BASE_BRANCH}
  18. # For wheel build
  19. # https://github.com/docker-library/docker/blob/master/20.10/docker-entrypoint.sh
  20. ENV DOCKER_TLS_CERTDIR=/certs
  21. ENV DOCKER_HOST=tcp://docker:2376
  22. ENV DOCKER_TLS_VERIFY=1
  23. ENV DOCKER_CERT_PATH=/certs/client
  24. ENV TRAVIS_COMMIT=${BUILDKITE_COMMIT}
  25. ENV BUILDKITE_BAZEL_CACHE_URL=${REMOTE_CACHE_URL}
  26. RUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub
  27. RUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub
  28. RUN apt-get update -qq && apt-get upgrade -qq
  29. RUN apt-get install -y -qq \
  30. curl python-is-python3 git build-essential \
  31. sudo unzip unrar apt-utils dialog tzdata wget rsync \
  32. language-pack-en tmux cmake gdb vim htop \
  33. libgtk2.0-dev zlib1g-dev libgl1-mesa-dev \
  34. clang-format-12 jq \
  35. clang-tidy-12 clang-12
  36. # Make using GCC 9 explicit.
  37. RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90 --slave /usr/bin/g++ g++ /usr/bin/g++-9 \
  38. --slave /usr/bin/gcov gcov /usr/bin/gcov-9
  39. RUN ln -s /usr/bin/clang-format-12 /usr/bin/clang-format && \
  40. ln -s /usr/bin/clang-tidy-12 /usr/bin/clang-tidy && \
  41. ln -s /usr/bin/clang-12 /usr/bin/clang
  42. RUN curl -o- https://get.docker.com | sh
  43. # System conf for tests
  44. RUN locale -a
  45. ENV LC_ALL=en_US.utf8
  46. ENV LANG=en_US.utf8
  47. RUN echo "ulimit -c 0" >> /root/.bashrc
  48. # Setup Bazel caches
  49. RUN (echo "build --remote_cache=${REMOTE_CACHE_URL}" >> /root/.bazelrc); \
  50. (if [ "${BUILDKITE_PULL_REQUEST}" != "false" ]; then (echo "build --remote_upload_local_results=false" >> /root/.bazelrc); fi); \
  51. cat /root/.bazelrc
  52. # Install some dependencies (miniconda, pip dependencies, etc)
  53. RUN mkdir /ray
  54. WORKDIR /ray
  55. # Below should be re-run each time
  56. COPY . .
  57. RUN ./ci/env/install-dependencies.sh init
  58. RUN RLLIB_TESTING=1 TRAIN_TESTING=1 TUNE_TESTING=1 bash --login -i ./ci/env/install-dependencies.sh