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>mysql是从requirements.txt安装的还是由apk MariahDb安装的?如果是后者,那么这就是第二张图片中缺少的内容;它不是pip安装的--用户在.local下它在第一个映像中安装在系统范围内,但在第二个映像中不安装</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
plt.savefig不会覆盖现有文件
7 回答
plt.savefig不保存图像
9 回答
plt.savefig在jupyter笔记本中不起作用
1 回答
plt.savefig在从另一个fi调用时停止工作
2 回答
plt.savefig在调用plt.show之前保存空数字
6 回答
plt.save不创建png文件
3 回答
plt.scatter overlay分类数据帧列
6 回答
Plt.Scatter:如何添加title、xlabel和ylab
6 回答
plt.scatter()绘图与Matplotlib中的plt.plot()绘图类似
7 回答
plt.scatter错误'NoneType'对象在成功运行后没有属性'sqrt'
6 回答
plt.set_title()中的标题字符串有误
2 回答
plt.show()
3 回答
plt.show()不在Jupyter笔记本上渲染任何内容
1 回答
plt.show()不打印plt.plot only plt.scatter
5 回答
plt.show()不显示三维散射图像
1 回答
plt.show()不显示任何内容
1 回答
plt.show()不显示数据,而是保留它供下一个图表使用(spyder)
6 回答
plt.show()使终端挂起
4 回答
plt.show()无法使用此代码
2 回答
plt.show()没有打开新的图形风
6 回答