giskard / Dockerfile
Tonic's picture
Duplicate from giskardai/giskard
10c932a verified
FROM docker.io/giskardai/giskard:2.11.0
USER root
RUN usermod -u 1000 giskard
RUN chown -R giskard \
/var/run/postgresql \
/var/lib/nginx \
"${GSK_USER_HOME}" \
"${GSK_DIST_PATH}"
# Use HF persistent storage under /data if mounted
ENV GISKARD_HF_DATA_DIR=/data/giskard/datadir
RUN mkdir -p "${GISKARD_HF_DATA_DIR}" && chown -R giskard "${GISKARD_HF_DATA_DIR}"
# Create or declare subdirs under GISKARD_HF_DATA_DIR
ENV PGDATA=$GISKARD_HF_DATA_DIR/database
RUN mkdir -p "${GISKARD_HF_DATA_DIR}/run" && chown -R giskard "${GISKARD_HF_DATA_DIR}/run"
# Keep the original GSK_HOME for supervisord run files
# We can still bring up supervisord in case of the persistent storage not working
ENV GSK_RUN=$GSK_HOME
RUN mkdir -p "${GSK_RUN}/run" && chown -R giskard "${GSK_RUN}/run"
USER giskard
# Only changed the original supervisord.conf to redirect logs to stdout
COPY --chown=giskard supervisord.conf $GSK_DIST_PATH
# Copy requirements for demo Space external worker
COPY --chown=giskard requirements.txt /requirements.txt
# Internal workr doesn't download resource, but takes them directly from projects, so no cache
ENV GSK_CACHE_DIR=projects
# Redirect to HF persistent storage for Python ($GSK_HOME) and Java ($GISKARD_HOME)
ENV GSK_HOME=$GISKARD_HF_DATA_DIR \
GISKARD_HOME=$GISKARD_HF_DATA_DIR
EXPOSE 7860
# Use a script to create dir and change owner in HF persistent storage during runtime
COPY --chown=giskard hf.sh "/giskard-bootstrap.sh"
ENTRYPOINT ["bash", "/giskard-bootstrap.sh"]