运行 prehook pod 加载共享库时出错

error while loading shared libraries when running prehook pod

我是 OpenShift 的新手,我正在将我的 flask 应用程序部署到它上面,但遇到了一些问题。我的 app/container 名字是 flog

我设置了生命周期预挂钩以确保为应用程序部署正确创建数据库。这是我的配置(关键部分):

spec:
  replicas: 1
  selector:
    deploymentconfig: flog
  strategy:
    activeDeadlineSeconds: 21600
    resources: {}
    rollingParams:
      intervalSeconds: 1
      maxSurge: 25%
      maxUnavailable: 25%
      pre:
        execNewPod:
          command:
            - flask
            - init
          containerName: flog
          env:
            - name: FLASK_APP
              value: wsgi.py
        failurePolicy: Abort
      timeoutSeconds: 600
      updatePeriodSeconds: 1
    type: Rolling

它在建筑中工作正常但在预挂机中中断

--> pre: Running hook pod ...
/opt/app-root/bin/python3: error while loading shared libraries: libpython3.5m.so.rh-python35-1.0: cannot open shared object file: No such file or directory

然而,当我在终端中调试并输入 python3 命令时,它运行良好。

在此先感谢您的帮助。

您需要将 shell 脚本添加到您的映像中,然后依次运行您的命令。 shell 脚本包装器是必需的,因为 shell 环境的初始化具有启用 Python 环境的副作用,包括设置环境变量以便它可以找到 Python 共享库.

所以改变:

      command:
        - flask
        - init

至:

      command:
        - somescript

并且在somescript中有:

#!/bin/bash
flask init