| FROM docker.io/giskardai/giskard:2.7.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"] | |