evennia/Dockerfile
Aris (Karim) Merchant 4eb765f155 Add procps dependency to Dockerfile
Certain evennia commands, such as the server command, rely upon
ps to run correctly. Unfortunately, alpine uses the BusyBox ps command,
which is somewhat idiosyncratic in its option handling. Adding
the procps dependency installs a more standard ps command, allowing
server maintenance commands to work correctly. This fixes #1635.

For further background, see gliderlabs/docker-alpine#173.
2018-07-23 17:16:40 -07:00

56 lines
1.7 KiB
Docker

#####
# Base docker image for running Evennia-based games in a container.
#
# Install:
# install `docker` (http://docker.com)
#
# Usage:
# cd to a folder where you want your game data to be (or where it already is).
#
# 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).
#
# 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 python py-pip python-dev py-setuptools gcc \
musl-dev jpeg-dev zlib-dev bash procps
# add the project source
ADD . /usr/src/evennia
# install dependencies
RUN pip install -e /usr/src/evennia --trusted-host pypi.python.org
# 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.
# 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
# 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