Created
April 24, 2018 03:08
-
-
Save tristansokol/33be721136b548eae407115d0ae6171b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM openai/retro-agent:tensorflow | |
# Needed for OpenCV. | |
RUN apt-get update && \ | |
apt-get install -y libgtk2.0-dev && \ | |
rm -rf /var/lib/apt/lists/* | |
# --- running from https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/docker/Dockerfile.devel | |
RUN apt-get update && apt-get install -y --no-install-recommends \ | |
build-essential \ | |
curl \ | |
git \ | |
libcurl3-dev \ | |
libfreetype6-dev \ | |
libpng12-dev \ | |
libzmq3-dev \ | |
pkg-config \ | |
python-dev \ | |
rsync \ | |
software-properties-common \ | |
unzip \ | |
zip \ | |
zlib1g-dev \ | |
openjdk-8-jdk \ | |
openjdk-8-jre-headless \ | |
&& \ | |
apt-get clean && \ | |
rm -rf /var/lib/apt/lists/* | |
RUN curl -fSsL -O https://bootstrap.pypa.io/get-pip.py && \ | |
python get-pip.py && \ | |
rm get-pip.py | |
RUN pip --no-cache-dir install \ | |
ipykernel \ | |
jupyter \ | |
matplotlib \ | |
numpy \ | |
scipy \ | |
sklearn \ | |
pandas \ | |
&& \ | |
python -m ipykernel.kernelspec | |
RUN ln -s -f /usr/bin/python3 /usr/bin/python# | |
# Set up Bazel. | |
# Running bazel inside a `docker build` command causes trouble, cf: | |
# https://github.com/bazelbuild/bazel/issues/134 | |
# The easiest solution is to set up a bazelrc file forcing --batch. | |
RUN echo "startup --batch" >>/etc/bazel.bazelrc | |
# Similarly, we need to workaround sandboxing issues: | |
# https://github.com/bazelbuild/bazel/issues/418 | |
RUN echo "build --spawn_strategy=standalone --genrule_strategy=standalone" \ | |
>>/etc/bazel.bazelrc | |
# Install the most recent bazel release. | |
ENV BAZEL_VERSION 0.12.0 | |
WORKDIR / | |
RUN mkdir /bazel && \ | |
cd /bazel && \ | |
curl -H "User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36" -fSsL -O https://github.com/bazelbuild/bazel/releases/download/$BAZEL_VERSION/bazel-$BAZEL_VERSION-installer-linux-x86_64.sh && \ | |
curl -H "User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36" -fSsL -o /bazel/LICENSE.txt https://raw.githubusercontent.com/bazelbuild/bazel/master/LICENSE && \ | |
chmod +x bazel-*.sh && \ | |
./bazel-$BAZEL_VERSION-installer-linux-x86_64.sh && \ | |
cd / && \ | |
rm -f /bazel/bazel-$BAZEL_VERSION-installer-linux-x86_64.sh | |
# Download and build TensorFlow. | |
WORKDIR /tensorflow | |
RUN git clone --branch=r1.8 --depth=1 https://github.com/tensorflow/tensorflow.git . | |
# TODO(craigcitro): Don't install the pip package, since it makes it | |
# more difficult to experiment with local changes. Instead, just add | |
# the built directory to the path. | |
ENV CI_BUILD_PYTHON python | |
RUN tensorflow/tools/ci_build/builds/configured CPU \ | |
bazel build -c opt --jobs 1 --local_resources 2048,0.5,1.0 \ | |
--verbose_failures --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" \ | |
--copt=-mavx2 \ | |
--copt=-mfma \ | |
# For optimized builds appropriate for the hardware platform of your choosing, uncomment below... | |
# For ivy-bridge or sandy-bridge | |
# --copt=-march="ivybridge" \ | |
# for haswell, broadwell, or skylake | |
# --copt=-march="haswell" \ | |
tensorflow/tools/pip_package:build_pip_package && \ | |
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/pip && \ | |
pip --no-cache-dir install --upgrade /tmp/pip/tensorflow-*.whl && \ | |
rm -rf /tmp/pip && \ | |
rm -rf /root/.cache | |
# Clean up pip wheel and Bazel cache when done. | |
# Baselines has some unneeded and cumbersome dependencies, | |
# so we manually fetch the deps we need. | |
RUN . ~/venv/bin/activate && \ | |
pip install scipy tqdm joblib zmq dill progressbar2 cloudpickle opencv-python && \ | |
pip install --no-deps git+https://github.com/openai/baselines.git | |
ADD ppo2-agent.py ./agent.py | |
ADD sonic_util.py . | |
CMD ["python", "-u", "/root/compo/agent.py"] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment