|
|
|
FROM debian
|
|
|
|
|
|
|
|
# install needed packages
|
|
|
|
RUN apt-get update && \
|
|
|
|
DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
|
|
|
redis-server \
|
|
|
|
openssh-server \
|
|
|
|
autoconf \
|
|
|
|
bison \
|
|
|
|
bsdmainutils \
|
|
|
|
flex \
|
|
|
|
gcc \
|
|
|
|
gdb \
|
|
|
|
git \
|
|
|
|
groff \
|
|
|
|
libncursesw5-dev \
|
|
|
|
libsqlite3-dev \
|
|
|
|
make \
|
|
|
|
ncurses-dev \
|
|
|
|
sqlite3 \
|
|
|
|
tar \
|
|
|
|
telnetd \
|
|
|
|
xinetd \
|
|
|
|
locales \
|
|
|
|
git \
|
|
|
|
vim
|
|
|
|
RUN apt-get clean
|
|
|
|
|
|
|
|
# TODO
|
|
|
|
# nightly instructions
|
|
|
|
#
|
|
|
|
RUN git clone https://github.com/NetHack/NetHack.git
|
|
|
|
RUN cd NetHack && \
|
|
|
|
sed -i 's/#ifndef SYSCF/#ifdef SYSCF/g' include/config.h && \
|
|
|
|
sys/unix/setup.sh sys/unix/hints/linux && \
|
|
|
|
sed -i '/POSTINSTALL=/d' Makefile && \
|
|
|
|
sed -i 's/.*-DSYSCF -DSYSCF_FILE=.*/CFLAGS+=-DSECURE/' Makefile && \
|
|
|
|
cat Makefile && \
|
|
|
|
make all && \
|
|
|
|
make install
|
|
|
|
RUN find /* -name nethack
|
|
|
|
RUN chmod 777 /NetHack/sys/unix/sysconf
|
|
|
|
|
|
|
|
# update sysconf
|
|
|
|
RUN sed -i 's/.*WIZARDS=.*/#WIZARDS=/' /NetHack/sys/unix/sysconf
|
|
|
|
RUN sed -i 's/.*GENERICUSERS=.*/#GENERICUSERS=/' /NetHack/sys/unix/sysconf
|
|
|
|
RUN sed -i 's/.*MAXPLAYERS=.*/MAXPLAYERS=0/' /NetHack/sys/unix/sysconf
|
|
|
|
|
|
|
|
# make required dirs
|
|
|
|
RUN mkdir -p /redisbackup/
|
|
|
|
|
|
|
|
## update nethack bin location
|
|
|
|
RUN cp /NetHack/src/nethack /bin/nethack
|
|
|
|
RUN chmod 777 /bin/nethack
|
|
|
|
RUN mkdir /hack/
|
|
|
|
|
|
|
|
# update ssh config
|
|
|
|
RUN echo "AllowUsers nethack" >> /etc/ssh/sshd_config
|
|
|
|
RUN echo "PermitEmptyPasswords yes" >> /etc/ssh/sshd_config
|
|
|
|
|
|
|
|
# add hack user
|
|
|
|
RUN useradd nethack -d / -s /nethack-launcher
|
|
|
|
RUN echo 'nethack:U6aMy0wojraho' | chpasswd -e
|
|
|
|
RUN chown -R nethack /hack/
|
|
|
|
RUN chown -R nethack /NetHack/
|
|
|
|
RUN touch /.hushlogin
|
|
|
|
|
|
|
|
# build ttyrec
|
|
|
|
RUN git clone https://github.com/ovh/ovh-ttyrec && \
|
|
|
|
cd ovh-ttyrec && \
|
|
|
|
./configure && make && make install
|
|
|
|
|
|
|
|
# remove ttyrec artifacts
|
|
|
|
RUN rm -rf ovh-ttyrec/
|
|
|
|
RUN DEBIAN_FRONTEND=noninteractive apt-get remove -y\
|
|
|
|
make \
|
|
|
|
git \
|
|
|
|
autoconf \
|
|
|
|
bison \
|
|
|
|
bsdmainutils \
|
|
|
|
flex \
|
|
|
|
groff
|
|
|
|
|
|
|
|
# build reclist
|
|
|
|
COPY reclist.c /
|
|
|
|
RUN gcc reclist.c -o /bin/reclist
|
|
|
|
RUN rm reclist.c
|
|
|
|
|
|
|
|
# copy in files
|
|
|
|
COPY config.gcfg /
|
|
|
|
COPY nethack-launcher /
|
|
|
|
COPY redis.conf /
|
|
|
|
COPY run.sh /
|
|
|
|
COPY chowner.sh /bin/
|
|
|
|
COPY nethackrc /.nethackrc
|
|
|
|
COPY run_nethack.sh /
|
|
|
|
|
|
|
|
CMD ["/run.sh"]
|