FROM registry.uniworx.de/uniworx/containers/debian:12.5 RUN apt-get -y update && apt-get -y install haskell-stack git RUN apt-get -y update && apt-get -y install alex g++ happy libghc-zlib-dev libpq-dev libsodium-dev locales locales-all pkg-config RUN apt-get -y update && apt-get -y install llvm ENV LANG=en_US.UTF-8 # locally these two should be identical, so that compilation results are written out into the file dir. # in CI-pipelines these two should be different, so that the container caches the compilation results. ARG MOUNT_DIR=/mnt/fradrive ARG PROJECT_DIR=/fradrive RUN mkdir -p ${PROJECT_DIR} RUN if [ "${PROJECT_DIR}" != "${MOUNT_DIR}" ] ; then cp -r ${MOUNT_DIR}/* ${PROJECT_DIR} ; fi WORKDIR ${PROJECT_DIR} ENV HOME=${PROJECT_DIR} RUN mkdir -p /.stack ENV STACK_ROOT=/.stack RUN make .stack STACK_ROOT=${STACK_ROOT} IN_CONTAINER=true RUN stack build yesod-bin ENV FRADRIVE_MAKE_TARGET=serve-backend ENTRYPOINT make -- ${FRADRIVE_MAKE_TARGET} STACK_ROOT=${STACK_ROOT} IN_CONTAINER=true EXPOSE 3000/tcp EXPOSE 3443/tcp