我正在尝试将我的应用从Google App Engine移动到使用托管VM的Compute Engine。根据文档,我只需要将vm: true
和不同的实例规范添加到我的app.yaml中,以使工作正常。
不幸的是,我在尝试导入lxml时得到ImportError: libxslt.so.1: cannot open shared object file: No such file or directory
。我在app.yaml中有一个需要的库列表,当我将我的应用程序部署到App Engine时,它就可以工作。
在下一步中,我尝试创建自己的docker文件,该文件将安装所有需要的库。现在它看起来像这样:
FROM beta.gcr.io/google_appengine/python-compat
RUN apt-get -q update && \
apt-get install --no-install-recommends -y -q \
python2.7 python-pip python-dev build-essential git mercurial \
libffi-dev libssl-dev libxml2-dev \
libxslt1-dev libpq-dev libmysqlclient-dev libcurl4-openssl-dev \
libjpeg-dev zlib1g-dev libpng12-dev && \
apt-get clean && rm /var/lib/apt/lists/*_*
RUN pip install lxml==2.3.5
ADD . /app
现在我收到了新的错误ImportError: /lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.14' not found (required by /home/vmagent/app/lib/lxml/etree.so)
。将libc6添加到apt-get的包列表中并没有改变任何东西,所以我没有想法。
那我怎样才能让我的应用在这里工作?
答案 0 :(得分:0)
您必须安装此软件包,此软件包负责libc.so.6
yum install libtidy glibc