Skip to content

Commit

Permalink
Extended dockerfiles for python
Browse files Browse the repository at this point in the history
Former-commit-id: 584b194
  • Loading branch information
mihahauke committed Mar 26, 2017
1 parent 58d8063 commit fb87969
Show file tree
Hide file tree
Showing 2 changed files with 92 additions and 53 deletions.
64 changes: 64 additions & 0 deletions docker/python3/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
FROM ubuntu:16.04

# ViZdoom dependencies
RUN apt-get update
RUN apt-get install -y \
build-essential \
bzip2 \
cmake \
curl \
git \
libboost-all-dev \
libbz2-dev \
libfluidsynth-dev \
libfreetype6-dev \
libgme-dev \
libgtk2.0-dev \
libjpeg-dev \
libopenal-dev \
libpng12-dev \
libsdl2-dev \
libwildmidi-dev \
libzmq3-dev \
nano \
nasm \
pkg-config \
rsync \
software-properties-common \
sudo \
tar \
timidity \
unzip \
wget \
zlib1g-dev

# Python3
RUN apt-get install -y python3-dev python3 python3-pip
RUN pip3 install pip --upgrade


# Enables X11 sharing and creates user home directory
ENV USER_NAME vizdoom
ENV HOME_DIR /home/$USER_NAME
#
# Replace HOST_UID/HOST_GUID with your user / group id (needed for X11)
ENV HOST_UID 1000
ENV HOST_GID 1000

RUN export uid=${HOST_UID} gid=${HOST_GID} && \
mkdir -p ${HOME_DIR} && \
echo "$USER_NAME:x:${uid}:${gid}:$USER_NAME,,,:$HOME_DIR:/bin/bash" >> /etc/passwd && \
echo "$USER_NAME:x:${uid}:" >> /etc/group && \
echo "$USER_NAME ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/$USER_NAME && \
chmod 0440 /etc/sudoers.d/$USER_NAME && \
chown ${uid}:${gid} -R ${HOME_DIR}


RUN git clone https://github.com/mwydmuch/ViZDoom ${HOME_DIR}/vizdoom
RUN pip3 install ${HOME_DIR}/vizdoom

USER ${USER_NAME}
WORKDIR ${HOME_DIR}


CMD cd vizdoom/examples/python; python3 basic.py
81 changes: 28 additions & 53 deletions docker/tensorflow/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
FROM ubuntu:16.04 # CPU ONLY
FROM ubuntu:16.04

# GPU -> see: https://github.com/NVIDIA/nvidia-docker
#FROM nvidia/cuda:7.5-cudnn5-devel
# or
#FROM nvidia/cuda:8.0-cudnn5-devel
FROM nvidia/cuda:8.0-cudnn5-devel

# Install dependencies
RUN apt-get update && apt-get install -y \
# ViZdoom dependencies
RUN apt-get update
RUN apt-get install -y \
build-essential \
bzip2 \
cmake \
Expand All @@ -27,8 +25,6 @@ RUN apt-get update && apt-get install -y \
nano \
nasm \
pkg-config \
python-dev \
python \
rsync \
software-properties-common \
sudo \
Expand All @@ -38,55 +34,34 @@ RUN apt-get update && apt-get install -y \
wget \
zlib1g-dev

# Python3
RUN apt-get install -y python3-dev python3 python3-pip
RUN pip3 install pip --upgrade

# Pick up pip
RUN curl -O https://bootstrap.pypa.io/get-pip.py && \
python get-pip.py && \
rm get-pip.py

# Install more dependencies via pip
RUN pip --no-cache-dir install \
ipykernel \
jupyter \
matplotlib \
numpy \
scipy \
sklearn \
pandas \
Pillow \
# Enables X11 sharing and creates user home directory
ENV USER_NAME vizdoom
ENV HOME_DIR /home/$USER_NAME
#
# Replace HOST_UID/HOST_GUID with your user / group id (needed for X11)
ENV HOST_UID 1000
ENV HOST_GID 1000

# Install TensorFlow
RUN pip --no-cache-dir install http://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.10.0-cp27-none-linux_x86_64.whl
# or
#RUN pip --no-cache-dir install http://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.10.0-cp27-none-linux_x86_64.whl
RUN export uid=${HOST_UID} gid=${HOST_GID} && \
mkdir -p ${HOME_DIR} && \
echo "$USER_NAME:x:${uid}:${gid}:$USER_NAME,,,:$HOME_DIR:/bin/bash" >> /etc/passwd && \
echo "$USER_NAME:x:${uid}:" >> /etc/group && \
echo "$USER_NAME ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/$USER_NAME && \
chmod 0440 /etc/sudoers.d/$USER_NAME && \
chown ${uid}:${gid} -R ${HOME_DIR}

# Clone ViZDoom and build + install via pip
RUN git clone https://github.com/mwydmuch/ViZDoom.git /root/vizdoom && \
pip install git+file:///root/vizdoom

# Expose ViZDoom's multiplayer port
EXPOSE 5029

# Code below allows sharing X11 socket with container
# Replace 1000 with your user / group id
RUN export uid=1000 gid=1000 && \
mkdir -p /home/developer && \
echo "developer:x:${uid}:${gid}:Developer,,,:/home/developer:/bin/bash" >> /etc/passwd && \
echo "developer:x:${uid}:" >> /etc/group && \
echo "developer ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/developer && \
chmod 0440 /etc/sudoers.d/developer && \
chown ${uid}:${gid} -R /home/developer
RUN git clone https://github.com/mwydmuch/ViZDoom ${HOME_DIR}/vizdoom
RUN pip3 install ${HOME_DIR}/vizdoom
RUN pip3 install tensorflow-gpu

USER developer
ENV HOME /home/developer
USER ${USER_NAME}
WORKDIR ${HOME_DIR}

# Set workdir
WORKDIR /root/vizdoom/examples/pyhton

# Expose python command
CMD ["python"]

# Examples of usage:
# BUILD THIS DOCKER: docker build -t tf+vizdoom .
# RUN THIS DOCKER WITH X11: docker run -ti --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix tf+vizdoom python basic.py

CMD cd vizdoom/examples/python; python3 learning_tensorflow.py

0 comments on commit fb87969

Please sign in to comment.