38 lines
1.4 KiB
Docker
38 lines
1.4 KiB
Docker
ARG FROM_IMG=docker.io/library/node
|
|
ARG FROM_TAG=20
|
|
|
|
FROM ${FROM_IMG}:${FROM_TAG}
|
|
|
|
ENV LANG=de_DE.UTF-8
|
|
ENV LANGUAGE=de_DE.UTF-8
|
|
|
|
# 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
|
|
|
|
# configure npm to use given proxy if specified
|
|
RUN if [ ! -z "${HTTP_PROXY}" ]; then npm config set proxy ${HTTP_PROXY}; fi
|
|
RUN if [ ! -z "${FRAPORT_NOPROXY}" ]; then npm config set noproxy "${FRAPORT_NOPROXY}"; fi
|
|
ENV NODE_EXTRA_CA_CERTS="/etc/ssl/certs/ca-certificates.crt"
|
|
|
|
# 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
|
|
ENV PROJECT_DIR=/fradrive
|
|
RUN mkdir -p ${PROJECT_DIR}
|
|
RUN --mount=type=bind,source=.,target=${MOUNT_DIR},rw if [ "${PROJECT_DIR}" != "${MOUNT_DIR}" ] ; then cp -r ${MOUNT_DIR}/* ${PROJECT_DIR} ; fi
|
|
WORKDIR ${PROJECT_DIR}
|
|
ENV HOME=${PROJECT_DIR}
|
|
|
|
RUN if [ ! -z "${NPM_CUSTOM_REGISTRY}" ]; then \
|
|
printf 'registry=${NPM_CUSTOM_REGISTRY}' > .npmrc \
|
|
; fi
|
|
|
|
# RUN make -- --dependencies-frontend IN_CONTAINER=true
|
|
|
|
# ENV FRADRIVE_MAKE_TARGET=--compile-frontend
|
|
# ENTRYPOINT make -- ${FRADRIVE_MAKE_TARGET} IN_CONTAINER=true CHROME_BIN=${CHROME_BIN} PROJECT_DIR=${PROJECT_DIR} |