diff --git a/Dockerfile.tiles b/Dockerfile.tiles index fa342fd..6e369eb 100644 --- a/Dockerfile.tiles +++ b/Dockerfile.tiles @@ -1,33 +1,63 @@ -# Base image -FROM ubuntu:20.04 +# Builder image +FROM ubuntu:20.04 AS builder # Variables ENV CRAWL_REPO="https://github.com/crawl/crawl.git" \ - BUILD_DEPS="autoconf bison build-essential flex git liblua5.1-0-dev libncursesw5-dev \ + APP_DEPS="libsdl2-image-dev libsdl2-mixer-dev libsdl2-dev \ + libfreetype6-dev libpng-dev ttf-dejavu-core advancecomp pngcrush" \ + BUILD_DEPS="autoconf bison build-essential flex git libncursesw5-dev \ libsqlite3-dev libz-dev pkg-config binutils-gold libsdl2-image-dev libsdl2-mixer-dev \ libsdl2-dev libfreetype6-dev libpng-dev ttf-dejavu-core advancecomp pngcrush" \ - APP_DEPS="bzip2 python3-minimal python3-pip python3-yaml ncurses-term locales-all sqlite3 libpcre3 locales lsof sudo libbot-basicbot-perl" \ DEBIAN_FRONTEND=noninteractive -# Logic +# Install packages for the build RUN apt-get update && \ apt-get upgrade -y && \ apt-get install -y ${BUILD_DEPS} ${APP_DEPS} -# Install Tornado -RUN pip3 install tornado - # Retrieve crawl RUN git clone ${CRAWL_REPO} /src/ # Build crawl RUN cd /src/crawl-ref/source && \ - make -j4 USE_DGAMELAUNCH=y TILES=y + make install -j4 DESTDIR=/app/ USE_DGAMELAUNCH=y WEBTILES=y -# Clean up unnecessary packages -RUN apt-get remove -y ${BUILD_DEPS} && \ - apt-get autoremove --purge -y && \ - rm -rf /var/lib/apt/lists/* +# Set up webserver components +RUN cp -r /src/crawl-ref/source/webserver /app/ && \ + cp -r /src/crawl-ref/source/util /app/ + +# Runtime image +FROM ubuntu:20.04 + +# Environment Variables +ENV APP_DEPS="libsdl2-image-dev libsdl2-mixer-dev libsdl2-dev \ + libfreetype6-dev libpng-dev ttf-dejavu-core advancecomp pngcrush" \ + DATA_DIR=/data \ + DEBIAN_FRONTEND=noninteractive + +# Install packages for the runtime +RUN apt-get update && \ + apt-get upgrade -y && \ + apt-get install -y ${APP_DEPS} + +# Copy over the compiled files +COPY --from=builder /app/ /app/ + +# Copy over custom configs +COPY settings/init.txt /app/settings/ + +# Adjustments for the container +RUN mkdir -p /data/rcs && \ + mkdir -p /data/webserver + +# Clean up unnecessary package lists +RUN rm -rf /var/lib/apt/lists/* # Expose ports -EXPOSE 8080 \ No newline at end of file +EXPOSE 8080 + +# Set the WORKDIR +WORKDIR /app + +# Launch WebTiles server +CMD [ "./webserver/server.py" ] \ No newline at end of file