28 lines
1001 B
Docker
28 lines
1001 B
Docker
FROM 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 |