Personalização das imagens de implantação Python e SPSS
Você pode adicionar personalizações às suas imagens Python e SPSS usando Docker ou Podman.
Adicionando personalizações a uma imagem d Python
- Se você estiver recuperando a imagem descontinuada do Spark 3.3, não é necessária nenhuma personalização.
- Se você estiver criando uma imagem personalizada para um modelo básico personalizado:
- Você deve preparar um código Python que exponha a API Completions relevante e inicie o servidor Rest API para expor a API. Adicione comandos que copiem este código Python na imagem Docker.
- Certifique-se de que sua imagem personalizada exponha a porta 3000. Caso contrário, a inferência não funcionará.
Consulte o seguinte exemplo de Dockerfile para adicionar personalizações à sua imagem Python.
ARG base_image_tag
FROM ${base_image_tag}
# For installing system packages, use root:root
# e.g.
USER root:root
RUN microdnf install -y jq
# For installing to conda site-packages,
# use wsbuild:wsbuild
# e.g.
USER wsbuild:wsbuild
RUN source $WML_DEPLOYMENT_VENV/bin/activate && \
$WML_DEPLOYMENT_VENV/bin/pip install pendulum
USER wsuser:wsbuild
Você pode executar este Dockerfile usando o docker build comando, que retorna o seguinte exemplo de saída:
docker build -t wml-demo-image:test-1 --build-arg base_image_tag=cp.stg.icr.io/cp/cpd/wml-dep-rt-251-py@sha256:b7c15be2d331fcafec349de531440dac7296fefcc42676fd34266d572b74d3e1 -f Dockerfile .
[+] Building 12.1s (7/7) FINISHED
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 400B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for cp.stg.icr.io/cp/cpd/wml-dep-rt-251-py@sha256:b7c15be2d331fcafec349de531440dac7296fefcc42676fd34266d572b74d3e1 0.0s
=> [1/3] FROM cp.stg.icr.io/cp/cpd/wml-dep-rt-251-py@sha256:b7c15be2d331fcafec349de531440dac7296fefcc42676fd34266d572b74d3e1 0.2s
=> [2/3] RUN microdnf install -y jq 7.0s
=> [3/3] RUN source /opt/user-env/pyt6xc/bin/activate && /opt/user-env/pyt6xc/bin/pip install pendulum 4.5s
=> exporting to image 0.3s
=> => exporting layers 0.2s
=> => writing image sha256:47e1e060d8a748b9b12859743badb892124a14c119a7c706d1f2f80861c87d33 0.0s
=> => naming to docker.io/library/wml-demo-image:test-1
Para usar o código de exemplo, você deve atualizar os seguintes parâmetros:
- Defina
user:groupo parâmetro pararoot:rootinstalar pacotes do sistema. - Após instalar os pacotes do sistema, defina
user:groupo parâmetro parawsbuild:wsbuildinstalar os pacotes python. - Após atualizar o
condaambiente, definauser:groupcomowsuser:wscommon.
Você também pode executar o Dockerfile em Podman usando o podman build comando, que retorna o seguinte exemplo de saída:
podman build -t wml-demo-image:test-1 \
--build-arg base_image_tag=$BASE_IMAGE \
-f Dockerfile
STEP 1/6: FROM cp.stg.icr.io/cp/cpd/wml-dep-rt-251-py@sha256:b7c15be2d331fcafec349de531440dac7296fefcc42676fd34266d572b74d3e1
STEP 2/6: USER root:root
--> 5c02bf3d2611
STEP 3/6: RUN microdnf install -y jq
Downloading metadata...
STEP 4/6: USER wsbuild:wsbuild
--> a71bec1afd05
STEP 5/6: RUN source $WML_DEPLOYMENT_VENV/bin/activate && $WML_DEPLOYMENT_VENV/bin/pip install xxxxx
--> 34a45526d163
STEP 6/6: USER 1000321000:103000
COMMIT wml-demo-image:test-1
--> dcd1b3899741
Successfully tagged localhost/wml-demo-image:test-1
dcd1b3899741aa5ba87ac48b5792a667fb48eb2328c89eeb4123f23a215792fb
Como prática recomendada, defina o padrão USER da imagem personalizada como wsuser:wscommon. A variável HOME de ambiente é definida como /home/wsuser no serviço de implantação.
Adicionando personalizações à sua imagem do SPSS
Consulte o seguinte exemplo de Dockerfile para adicionar personalizações à sua imagem SPSS :
FROM <SPSS_RUNTIME_IMAGE> AS custom_image
# Install Exasol ODBC driver
RUN mkdir -p /opt/exasol
RUN wget -O /opt/exasol/EXASOL_ODBC.tar.gz \
https://www.exasol.com/support/secure/attachment/175398/EXASOL_ODBC-${EXASOL_ODBC_VERSION}.tar.gz
RUN ls -l /opt/exasol/EXASOL_ODBC.tar.gz
RUN cd /opt/exasol \
&& tar -xzf EXASOL_ODBC.tar.gz
RUN mv /opt/exasol/EXASolution_ODBC-${EXASOL_ODBC_VERSION}/* /opt/exasol
RUN rm -rf /opt/exasol/EXASolution_ODBC-${EXASOL_ODBC_VERSION} \
&& rm -rf /opt/exasol/EXASOL_ODBC.tar.gz
# enable Exasol ODBC Driver
RUN sed -i '2iExasol Client=Installed' ${SDAPDRIVER_HOME}/odbcinst.ini
USER ${BASE_USER_NAME}