33 lines
1.1 KiB
Docker
33 lines
1.1 KiB
Docker
FROM debian:12.5
|
|
|
|
# Basic dependencies
|
|
RUN apt-get -y update && apt-get -y install curl npm
|
|
|
|
# Build and watch dependencies
|
|
RUN apt-get -y update && apt-get -y install exiftool
|
|
RUN apt-get -y update && apt-get -y install imagemagick
|
|
|
|
# Test dependencies
|
|
RUN apt-get -y update && apt-get -y install chromium
|
|
ENV CHROME_BIN=chromium
|
|
|
|
# TODO: use dotenv for npm version?
|
|
RUN npm install -g n
|
|
RUN n 20.17.0
|
|
|
|
# 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 make node_modules IN_CONTAINER=true
|
|
#RUN make well-known IN_CONTAINER=true
|
|
RUN make -- --frontend-dependencies
|
|
|
|
ENV FRADRIVE_MAKE_TARGET=watch-frontend
|
|
ENTRYPOINT make -- ${FRADRIVE_MAKE_TARGET} IN_CONTAINER=true CHROME_BIN=${CHROME_BIN}
|