Nethack Launcher
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

101 lines
2.3 KiB

FROM debian
# install needed packages
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y \
redis-server \
openssh-server \
curl \
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 && \
sed -i 's/#CFLAGS+=-DSCORE_ON_BOTL/CFLAGS+=-DSCORE_ON_BOTL/' Makefile && \
cat Makefile && \
make fetch-Lua && \
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"]