Activar entorno virtual para toda la ejecución de IRIS
Hola a todos.
Tras intentar de ejecutar métodos Python en el docker intersystemsdc/irishealth-community, que no permite ahora ejecutar ningún método con Python, decidí dejar esta versión y empezar a trabajar con containers.intersystems.com/intersystems/iris-community.
En este entorno si funcionan los método de Python y ya era un paso bastante grande.
Intento importar mis liberarías con pip install -r requirements.txt pero, como muy buena medida de seguridad, me impide que se realice este cambio en la librería general, por lo que requiere que esta instalación se realice en un entorno virtual.
Tengo el siguiente código en Dockerfile
ARG IMAGE=containers.intersystems.com/intersystems/iris-community:latest-em
FROM $IMAGE
USER root
WORKDIR /opt/irisbuild
RUN chown ${ISC_PACKAGE_MGRUSER}:${ISC_PACKAGE_IRISGROUP} /opt/irisbuild
USER ${ISC_PACKAGE_MGRUSER}
COPY src src
COPY data data
COPY iris.script iris.script
COPY requirements.txt requirements.txt
RUN python3 -m venv ${ISC_PACKAGE_INSTALLDIR}/.venv
RUN bash -c "source \"${ISC_PACKAGE_INSTALLDIR}/.venv/bin/activate\" && pip install -U -r requirements.txt"
RUN export IRIS_PYTHON_PATH=${ISC_PACKAGE_INSTALLDIR}/.venv/bin/
RUN iris start IRIS \
&& iris session IRIS < iris.script \
&& iris stop IRIS quietly
Si accedo luego por terminal, veo que realmente se han instalado los paquetes en el entorno virtual, pero si quiero utilizarlo en una clase de IRIS, no puede acceder porque la aplicación no tiene levantado el entorno virtual.
He consultado en varios foros y no me deja muy claro como hay que configurar mi instancia de IRIS para que tenga acceso a los paquetes instalados en el entorno virtual.
En el fichero docker-compose.yml tengo este valor en la sección environment
environment:
- IRIS_PYTHON_PATH=/usr/irissys/.venv/bin/