5
如何解决Alpine docker容器内Flask应用程序的Gunicorn执行程序上引发的``OSError:libc not found''问题
我正在基于Miguel Grinberg的大型教程的Microblog应用程序开发Flask应用程序。代码位于此处:https : //github.com/dnilasor/quickgig。我有一个带有链接的MySQL 5.7容器的可运行docker实现。今天,我使用Flask-Admin模块添加了一个Admin View功能。它通过“ flask run”在Flask服务器上本地服务(OSX)上精美地工作,但是当我构建并运行新的docker镜像(基于python:3.8-alpine)时,它在启动时崩溃并出现OSError: libc not found错误,其代码似乎指示未知的图书馆 在我看来,Gunicorn无法在我添加内容后投放该应用程序。我和我的同学很沮丧! 我最初使用python:3.6-alpine基本图像得到了错误,因此尝试使用3.7和3.8无济于事。我还注意到,一旦在requirements.txt中指定了版本号,便会多余地添加PyMySQL。并再次在dockerfile中明确显示,没有任何规范。删除了requirements.txt条目。还尝试增加Flask-Admin版本号。上和下。还尝试清理数据库迁移,因为我已经看到多个迁移文件导致容器无法启动(诚然,这是在使用SQLite时)。现在只有一个迁移文件,并且基于堆栈跟踪,看起来flask db upgrade工作正常。 我尚未尝试的一件事是不同的基本映像(最少的基本映像?),可以尽快尝试并更新它。但是这个问题对我来说是如此神秘,以至于我认为是时候问其他人是否看过它了:) 我确实发现了这个似乎可能相关的套接字错误,但是应该在python 3.8中已完全修复。 此外FYI我跟着一些建议这里的圆形进口和进口我的管理控制器功能里面create_app。 Dockerfile: FROM python:3.8-alpine RUN adduser -D quickgig WORKDIR /home/quickgig COPY requirements.txt requirements.txt RUN python -m venv venv RUN venv/bin/pip install -r requirements.txt RUN venv/bin/pip install gunicorn pymysql COPY app app COPY …