【发布时间】:2015-11-06 15:28:13
【问题描述】:
我正在尝试将我的应用从 Google App Engine 迁移到具有托管 VM 的 Compute Engine。根据文档,我只需要在我的 app.yaml 中添加 vm: true
和不同的实例规范即可让事情正常进行。
不幸的是,我在尝试导入 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 的包列表中不会改变任何东西,所以我没有这个想法。
那么我怎样才能让我的应用在这里工作呢?
【问题讨论】:
-
哪个版本会显示在您的实例上运行的
ldd --version命令的输出?它应该是 2.14 或更高版本。
标签: python google-app-engine google-compute-engine dockerfile