Last active
June 22, 2019 15:06
-
-
Save henteko/e2463312061e0f92a713e07b7cd13038 to your computer and use it in GitHub Desktop.
This file contains 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
version: '3.4' | |
x-ml-agents-base: &ml-agents-base | |
build: . | |
volumes: | |
- ./unity-volume:/unity-volume | |
working_dir: /unity-volume | |
services: | |
mlagents-learn: | |
<<: *ml-agents-base | |
ports: | |
- "5005:5005" | |
command: mlagents-learn /unity-volume/trainer_config.yaml --train --run-id=RollerBall | |
tensorboard: | |
<<: *ml-agents-base | |
ports: | |
- "6006:6006" | |
command: tensorboard --logdir=/unity-volume/summaries/ |
This file contains 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
# Based off of python:3.6-slim, except that we are using ubuntu instead of debian. | |
FROM ubuntu:16.04 | |
# ensure local python is preferred over distribution python | |
ENV PATH /usr/local/bin:$PATH | |
# http://bugs.python.org/issue19846 | |
# > At the moment, setting "LANG=C" on a Linux system *fundamentally breaks Python 3*, and that's not OK. | |
ENV LANG C.UTF-8 | |
# runtime dependencies | |
RUN apt-get update && apt-get install -y --no-install-recommends \ | |
ca-certificates \ | |
libexpat1 \ | |
libffi6 \ | |
libgdbm3 \ | |
libreadline6 \ | |
libsqlite3-0 \ | |
libssl1.0.0 \ | |
&& rm -rf /var/lib/apt/lists/* | |
ENV GPG_KEY 0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D | |
ENV PYTHON_VERSION 3.6.4 | |
RUN set -ex \ | |
&& buildDeps=" \ | |
dpkg-dev \ | |
gcc \ | |
libbz2-dev \ | |
libc6-dev \ | |
libexpat1-dev \ | |
libffi-dev \ | |
libgdbm-dev \ | |
liblzma-dev \ | |
libncursesw5-dev \ | |
libreadline-dev \ | |
libsqlite3-dev \ | |
libssl-dev \ | |
make \ | |
tcl-dev \ | |
tk-dev \ | |
wget \ | |
xz-utils \ | |
zlib1g-dev \ | |
# as of Stretch, "gpg" is no longer included by default | |
$(command -v gpg > /dev/null || echo 'gnupg dirmngr') \ | |
" \ | |
&& apt-get update && apt-get install -y $buildDeps --no-install-recommends && rm -rf /var/lib/apt/lists/* \ | |
\ | |
&& wget -O python.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz" \ | |
&& wget -O python.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc" \ | |
&& export GNUPGHOME="$(mktemp -d)" \ | |
&& gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPG_KEY" \ | |
&& gpg --batch --verify python.tar.xz.asc python.tar.xz \ | |
&& rm -rf "$GNUPGHOME" python.tar.xz.asc \ | |
&& mkdir -p /usr/src/python \ | |
&& tar -xJC /usr/src/python --strip-components=1 -f python.tar.xz \ | |
&& rm python.tar.xz \ | |
\ | |
&& cd /usr/src/python \ | |
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \ | |
&& ./configure \ | |
--build="$gnuArch" \ | |
--enable-loadable-sqlite-extensions \ | |
--enable-shared \ | |
--with-system-expat \ | |
--with-system-ffi \ | |
--without-ensurepip \ | |
&& make -j "$(nproc)" \ | |
&& make install \ | |
&& ldconfig \ | |
\ | |
&& apt-get purge -y --auto-remove $buildDeps \ | |
\ | |
&& find /usr/local -depth \ | |
\( \ | |
\( -type d -a \( -name test -o -name tests \) \) \ | |
-o \ | |
\( -type f -a \( -name '*.pyc' -o -name '*.pyo' \) \) \ | |
\) -exec rm -rf '{}' + \ | |
&& rm -rf /usr/src/python | |
# make some useful symlinks that are expected to exist | |
RUN cd /usr/local/bin \ | |
&& ln -s idle3 idle \ | |
&& ln -s pydoc3 pydoc \ | |
&& ln -s python3 python \ | |
&& ln -s python3-config python-config | |
# if this is called "PIP_VERSION", pip explodes with "ValueError: invalid truth value '<VERSION>'" | |
ENV PYTHON_PIP_VERSION 9.0.3 | |
RUN set -ex; \ | |
\ | |
apt-get update; \ | |
apt-get install -y --no-install-recommends wget; \ | |
rm -rf /var/lib/apt/lists/*; \ | |
\ | |
wget -O get-pip.py 'https://bootstrap.pypa.io/get-pip.py'; \ | |
\ | |
apt-get purge -y --auto-remove wget; \ | |
\ | |
python get-pip.py \ | |
--disable-pip-version-check \ | |
--no-cache-dir \ | |
"pip==$PYTHON_PIP_VERSION" \ | |
; \ | |
pip --version; \ | |
\ | |
find /usr/local -depth \ | |
\( \ | |
\( -type d -a \( -name test -o -name tests \) \) \ | |
-o \ | |
\( -type f -a \( -name '*.pyc' -o -name '*.pyo' \) \) \ | |
\) -exec rm -rf '{}' +; \ | |
rm -f get-pip.py | |
RUN apt-get update && apt-get -y upgrade | |
# xvfb is used to do CPU based rendering of Unity | |
RUN apt-get install -y xvfb | |
# Install ml-agents-envs package locally | |
COPY ml-agents-envs /ml-agents-envs | |
WORKDIR /ml-agents-envs | |
RUN pip install -e . | |
# Install ml-agents package next | |
COPY ml-agents /ml-agents | |
WORKDIR /ml-agents | |
RUN pip install -e . | |
# port 5005 is the port used in in Editor training. | |
EXPOSE 5005 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment