mirror of
https://github.com/gryf/coach.git
synced 2025-12-18 19:50:17 +01:00
update dockerfile and makefile
This commit is contained in:
@@ -1,20 +1,97 @@
|
|||||||
FROM ubuntu:16.04
|
FROM nvidia/cuda:9.0-cudnn7-devel-ubuntu16.04
|
||||||
|
|
||||||
RUN apt-get update \
|
# https://github.com/NVIDIA/nvidia-docker/issues/619
|
||||||
&& apt-get install -y \
|
RUN rm /etc/apt/sources.list.d/cuda.list
|
||||||
python3-pip cmake zlib1g-dev python3-tk python-opencv \
|
RUN apt-get update && \
|
||||||
libboost-all-dev \
|
apt-get upgrade -y && \
|
||||||
libblas-dev liblapack-dev libatlas-base-dev gfortran \
|
apt-get clean autoclean && \
|
||||||
libsdl-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev \
|
apt-get autoremove -y
|
||||||
libsmpeg-dev libportmidi-dev libavformat-dev libswscale-dev \
|
RUN apt-get update && \
|
||||||
dpkg-dev build-essential python3.5-dev libjpeg-dev libtiff-dev \
|
apt-get install -y python-pip && \
|
||||||
libsdl1.2-dev libnotify-dev freeglut3 freeglut3-dev libsm-dev \
|
apt-get clean autoclean && \
|
||||||
libgtk2.0-dev libgtk-3-dev libwebkitgtk-dev libgtk-3-dev \
|
apt-get autoremove -y
|
||||||
libwebkitgtk-3.0-dev libgstreamer-plugins-base1.0-dev \
|
RUN pip install pip --upgrade
|
||||||
libav-tools libsdl2-dev swig
|
WORKDIR /root
|
||||||
|
|
||||||
# installing python dependencies
|
################################
|
||||||
|
# Install apt-get Requirements #
|
||||||
|
################################
|
||||||
|
|
||||||
|
# General
|
||||||
|
RUN apt-get install python3-pip cmake zlib1g-dev python3-tk python-opencv -y
|
||||||
|
|
||||||
|
# Boost libraries
|
||||||
|
RUN apt-get install libboost-all-dev -y
|
||||||
|
|
||||||
|
# Scipy requirements
|
||||||
|
RUN apt-get install libblas-dev liblapack-dev libatlas-base-dev gfortran -y
|
||||||
|
|
||||||
|
# Pygame requirements
|
||||||
|
RUN apt-get install libsdl-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev -y
|
||||||
|
RUN apt-get install libsmpeg-dev libportmidi-dev libavformat-dev libswscale-dev -y
|
||||||
|
|
||||||
|
# Dashboard
|
||||||
|
RUN apt-get install dpkg-dev build-essential python3.5-dev libjpeg-dev libtiff-dev libsdl1.2-dev libnotify-dev \
|
||||||
|
freeglut3 freeglut3-dev libsm-dev libgtk2.0-dev libgtk-3-dev libwebkitgtk-dev libgtk-3-dev \
|
||||||
|
libwebkitgtk-3.0-dev libgstreamer-plugins-base1.0-dev -y
|
||||||
|
|
||||||
|
# Gym
|
||||||
|
RUN apt-get install libav-tools libsdl2-dev swig cmake -y
|
||||||
|
|
||||||
|
# Mujoco_py
|
||||||
|
RUN apt-get install curl libgl1-mesa-dev libgl1-mesa-glx libglew-dev libosmesa6-dev software-properties-common -y
|
||||||
|
|
||||||
|
# ViZDoom
|
||||||
|
RUN apt-get install build-essential zlib1g-dev libsdl2-dev libjpeg-dev \
|
||||||
|
nasm tar libbz2-dev libgtk2.0-dev cmake git libfluidsynth-dev libgme-dev \
|
||||||
|
libopenal-dev timidity libwildmidi-dev unzip wget -y
|
||||||
|
|
||||||
|
# cleanup apt-get
|
||||||
|
RUN apt-get clean autoclean && \
|
||||||
|
apt-get autoremove -y
|
||||||
|
############################
|
||||||
|
# Install Pip Requirements #
|
||||||
|
############################
|
||||||
RUN pip3 install --upgrade pip
|
RUN pip3 install --upgrade pip
|
||||||
|
RUN pip3 install pytest
|
||||||
|
RUN pip3 install pytest-xdist
|
||||||
|
|
||||||
|
# initial installation of coach, so that the docker build won't install everything from scratch
|
||||||
|
RUN pip3 install rl_coach>=0.10.0
|
||||||
|
|
||||||
|
# install additional environments
|
||||||
|
RUN pip3 install gym[atari]==0.10.5
|
||||||
|
RUN pip3 install mujoco_py==1.50.1.56
|
||||||
|
RUN pip3 install vizdoom==1.1.6
|
||||||
|
|
||||||
|
# FROM ubuntu:16.04
|
||||||
|
#
|
||||||
|
# RUN apt-get update \
|
||||||
|
# && apt-get install -y \
|
||||||
|
# python3-pip cmake zlib1g-dev python3-tk python-opencv \
|
||||||
|
# libboost-all-dev \
|
||||||
|
# libblas-dev liblapack-dev libatlas-base-dev gfortran \
|
||||||
|
# libsdl-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev \
|
||||||
|
# libsmpeg-dev libportmidi-dev libavformat-dev libswscale-dev \
|
||||||
|
# dpkg-dev build-essential python3.5-dev libjpeg-dev libtiff-dev \
|
||||||
|
# libsdl1.2-dev libnotify-dev freeglut3 freeglut3-dev libsm-dev \
|
||||||
|
# libgtk2.0-dev libgtk-3-dev libwebkitgtk-dev libgtk-3-dev \
|
||||||
|
# libwebkitgtk-3.0-dev libgstreamer-plugins-base1.0-dev \
|
||||||
|
# libav-tools libsdl2-dev swig
|
||||||
|
#
|
||||||
|
# # installing python dependencies
|
||||||
|
# RUN pip3 install --upgrade pip
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y wget zip
|
||||||
|
RUN mkdir -p ~/.mujoco \
|
||||||
|
&& wget https://www.roboti.us/download/mjpro150_linux.zip -O mujoco.zip \
|
||||||
|
&& unzip mujoco.zip -d ~/.mujoco \
|
||||||
|
&& rm mujoco.zip
|
||||||
|
COPY ./mjkey.txt /root/.mujoco/
|
||||||
|
ENV LD_LIBRARY_PATH /root/.mujoco/mjpro150/bin:$LD_LIBRARY_PATH
|
||||||
|
|
||||||
|
RUN curl -o /usr/local/bin/patchelf https://s3-us-west-2.amazonaws.com/openai-sci-artifacts/manual-builds/patchelf_0.9_amd64.elf \
|
||||||
|
&& chmod +x /usr/local/bin/patchelf
|
||||||
|
|
||||||
RUN mkdir /root/src
|
RUN mkdir /root/src
|
||||||
COPY setup.py /root/src/.
|
COPY setup.py /root/src/.
|
||||||
@@ -22,12 +99,11 @@ COPY requirements.txt /root/src/.
|
|||||||
COPY README.md /root/src/.
|
COPY README.md /root/src/.
|
||||||
WORKDIR /root/src
|
WORKDIR /root/src
|
||||||
RUN pip3 install -e .
|
RUN pip3 install -e .
|
||||||
#
|
|
||||||
|
# everything above here should be cached most of the time
|
||||||
COPY . /root/src
|
COPY . /root/src
|
||||||
WORKDIR /root/src
|
WORKDIR /root/src
|
||||||
RUN pip3 install -e .
|
RUN pip3 install -e .
|
||||||
|
|
||||||
# RUN pip3 install rl_coach
|
RUN chmod 777 /root/src/docker/docker_entrypoint.sh
|
||||||
|
ENTRYPOINT ["/root/src/docker/docker_entrypoint.sh"]
|
||||||
# CMD ["coach", "-p", "CartPole_PG", "-e", "cartpole"]
|
|
||||||
# CMD python3 rl_coach/rollout_worker.py --preset CartPole_DQN_distributed
|
|
||||||
|
|||||||
@@ -34,8 +34,17 @@ build:
|
|||||||
shell: build
|
shell: build
|
||||||
${DOCKER} run ${RUN_ARGUMENTS} -it ${IMAGE} /bin/bash
|
${DOCKER} run ${RUN_ARGUMENTS} -it ${IMAGE} /bin/bash
|
||||||
|
|
||||||
test: build
|
unit_tests: build
|
||||||
${DOCKER} run ${RUN_ARGUMENTS} -it ${IMAGE} py.test tests
|
${DOCKER} run ${RUN_ARGUMENTS} -it ${IMAGE} python3 -m pytest rl_coach/tests -m unit_test -n 8
|
||||||
|
|
||||||
|
integration_tests: build
|
||||||
|
${DOCKER} run ${RUN_ARGUMENTS} -it ${IMAGE} python3 -m pytest rl_coach/tests -m integration_test -n auto
|
||||||
|
|
||||||
|
golden_tests: build
|
||||||
|
${DOCKER} run ${RUN_ARGUMENTS} -it ${IMAGE} python3 rl_coach/tests/golden_tests.py
|
||||||
|
|
||||||
|
trace_tests: build
|
||||||
|
${DOCKER} run ${RUN_ARGUMENTS} -it ${IMAGE} python3 rl_coach/tests/trace_tests.py -prl
|
||||||
|
|
||||||
run: build
|
run: build
|
||||||
${DOCKER} run ${RUN_ARGUMENTS} -it ${IMAGE}
|
${DOCKER} run ${RUN_ARGUMENTS} -it ${IMAGE}
|
||||||
|
|||||||
21
docker/docker_entrypoint.sh
Normal file
21
docker/docker_entrypoint.sh
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# # download mjpro150
|
||||||
|
# mkdir /root/.mujoco
|
||||||
|
# cd /root/.mujoco
|
||||||
|
# wget https://www.roboti.us/download/mjpro150_linux.zip
|
||||||
|
# unzip mjpro150_linux.zip
|
||||||
|
|
||||||
|
# copy the mujoco license key into the container
|
||||||
|
# echo $MUJOCO_KEY | base64 --decode > /root/.mujoco/mjkey.txt
|
||||||
|
# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/.mujoco/mjpro150/bin
|
||||||
|
|
||||||
|
# git clone https://github.com/deepmind/dm_control.git
|
||||||
|
# pip3 install ./dm_control
|
||||||
|
|
||||||
|
export VIZDOOM_ROOT=`pip show vizdoom 2>/dev/null | awk '/Location/{print $2}'`/vizdoom
|
||||||
|
|
||||||
|
cd /root/src/
|
||||||
|
|
||||||
|
exec "$@"
|
||||||
Reference in New Issue
Block a user