具有库的谷歌应用引擎的正确dockerfile

时间:2015-11-06 15:28:13

标签: python google-app-engine google-compute-engine dockerfile

我正在尝试将我的应用从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的包列表中并没有改变任何东西,所以我没有想法。

那我怎样才能让我的应用在这里工作?

1 个答案:

答案 0 :(得分:0)

您必须安装此软件包,此软件包负责libc.so.6

yum install libtidy glibc