diff --git a/Dockerfile b/Dockerfile index 3527d3c8ac..c231f2a733 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,40 +1,54 @@ ##### # Base docker image for running Evennia-based games in a container. # -# This Dockerfile creates the evennia/evennia docker image -# on DockerHub, which can be used as the basis for creating -# an Evennia game within a container. This base image can be -# found in DockerHub at https://hub.docker.com/r/evennia/evennia/ +# Install: +# install `docker` (http://docker.com) # -# For more information on using it to build a container to run your game, see +# Usage: +# cd to a folder where you want your game data to be (or where it already is). # -# https://github.com/evennia/evennia/wiki/Running%20Evennia%20in%20Docker +# docker run -it -p 4000:4000 -p 4001:4001 -p 4005:4005 -v $PWD:/usr/src/game evennia/evennia +# +# (If your OS does not support $PWD, replace it with the full path to your current +# folder). # -FROM python:2.7-alpine -MAINTAINER Dan Feeney "feend78@gmail.com" +# You will end up in a shell where the `evennia` command is available. From here you +# can install and run the game normally. Use Ctrl-D to exit the evennia docker container. +# +# The evennia/evennia base image is found on DockerHub and can also be used +# as a base for creating your own custom containerized Evennia game. For more +# info, see https://github.com/evennia/evennia/wiki/Running%20Evennia%20in%20Docker . +# +FROM alpine + +MAINTAINER www.evennia.com # install compilation environment -RUN apk update && apk add gcc musl-dev +RUN apk update && apk add python py-pip python-dev py-setuptools gcc musl-dev jpeg-dev zlib-dev bash # add the project source ADD . /usr/src/evennia # install dependencies -RUN pip install -e /usr/src/evennia +RUN pip install -e /usr/src/evennia --index-url=http://pypi.python.org/simple/ --trusted-host pypi.python.org -# add the game source during game builds +# add the game source when rebuilding a new docker image from inside +# a game dir ONBUILD ADD . /usr/src/game # make the game source hierarchy persistent with a named volume. -# during development this is typically superceded by directives in -# docker-compose.yml or the CLI to mount a local directory. +# mount on-disk game location here when using the container +# to just get an evennia environment. VOLUME /usr/src/game # set the working directory WORKDIR /usr/src/game -# startup command -CMD ["evennia", "-i", "start"] +# set bash prompt +ENV PS1 "evennia|docker \w $ " + +# startup a shell when we start the container +ENTRYPOINT ["bash"] # expose the telnet, webserver and websocket client ports EXPOSE 4000 4001 4005 diff --git a/requirements.txt b/requirements.txt index 4d007d9532..be3cf558e5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ # Evennia dependencies, for Linux/Mac platforms django > 1.10, < 2.0 -twisted >= 16.0.0 +twisted == 16.0.0 mock >= 1.0.1 pillow == 2.9.0 pytz