Python中文
首页
教程
问答
标签
搜索
登录
注册
如何在Dockerfile中将flask依赖项从一个阶段复制到下一个阶段?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在学习Docker,我有一个Dockerfile,其中有一个简单的应用程序,例如:</p> <pre><code>FROM python:3.8-alpine WORKDIR /code ENV FLASK_APP App.py ENV FLASK_RUN_HOST 0.0.0.0 ENV FLASK_RUN_PORT :3001 RUN apk update \ && apk add --virtual build-deps gcc python3-dev musl-dev \ && apk add --no-cache mariadb-dev COPY ./myapp/requirements.txt requirements.txt RUN pip install --no-cache-dir -vv -r requirements.txt ADD ./myapp . EXPOSE 3001 CMD ["flask", "run"] </code></pre> <p>我想使用多级生成更小的图像,因此选中此<a href="https://pythonspeed.com/articles/multi-stage-docker-python/" rel="nofollow noreferrer">https://pythonspeed.com/articles/multi-stage-docker-python/</a>我将Dockerfile更改为:</p> <pre><code>FROM python:3.8-alpine as builder COPY ./myapp/requirements.txt requirements.txt RUN apk update \ && apk add --virtual build-deps gcc python3-dev musl-dev \ && apk add --no-cache mariadb-dev RUN pip install --user -r requirements.txt FROM python:3.8-alpine ADD ./myapp . COPY --from=builder /root/.local /root/.local ENV PATH=/root/.local:$PATH ENV FLASK_APP App.py ENV FLASK_RUN_HOST 0.0.0.0 ENV FLASK_RUN_PORT 3000 CMD ["python", "-m", "flask", "run"] </code></pre> <p>但是当运行容器时,我得到一个错误,告诉我没有安装MySQL dp dependecy(它在requirements.txt中),但是它在requirements.txt文件中,并且在第一个Dockerfile中工作,所以我不知道我遗漏了什么,好像我做对了第二阶段的复制步骤应该复制第一阶段安装的依赖项,对吗?。这是我尝试旋转容器时得到的输出:</p> <pre><code>Traceback (most recent call last): File "/root/.local/lib/python3.8/site-packages/MySQLdb/__init__.py", line 18, in <module> from . import _mysql ImportError: Error loading shared library libmariadb.so.3: No such file or directory (needed by /root/.local/lib/python3.8/site-packages/MySQLdb/_mysql.cpython-38-x86_64-linux-gnu.so) </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p><code>apk add no-cache mariadb-dev</code>还要安装MariaDB库,而不是在最终映像中安装。他们的缺乏是你犯错误的原因</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在python中从数据帧列中删除分类值?
6 回答
如何在python中从数据帧列表中删除引号
8 回答
如何在python中从数据帧创建列表
6 回答
如何在Python中从数据帧创建嵌套的JSON
10 回答
如何在Python中从数据帧显示wordcloud
1 回答
如何在Python中从数据帧的时间戳中删除字符
10 回答
如何在Python中从数据帧绘制简单绘图?
3 回答
如何在python中从数据帧行提取具有特定长度的范围?
7 回答
如何在python中从数据帧设置dict中的值
6 回答
如何在Python中从数据库中获得一个结果
7 回答
如何在python中从数据框中绘制分类条形图
1 回答
如何在Python中从数据框中选择特定细节?
1 回答
如何在python中从数据集中删除unicode
10 回答
如何在python中从数据集中删除某些数值?
1 回答
如何在python中从数据集中选择行
9 回答
如何在Python中从数组中删除元素
8 回答
如何在python中从数组中删除单个倒逗号?
6 回答
如何在python中从数组中删除对象?
7 回答
如何在python中从数组中删除引号
10 回答
如何在python中从数组中删除所有最小值
6 回答