python - docker-compose build 时 Docker miniconda3 设置错误
问题描述
我正在尝试使用“docker-compose build”为 miniconda3 创建一个 docker 容器,但是下面的错误代码显示。
未回答的新问题
或者有没有更好的方法来使用 continuumio/miniconda3 docker 映像以确保它预先安装了一些所需的 python 包列表(例如,通过 pip install --r requirements.txt 或 conda create --命名 myenv --file environment.yml 或任何其他有效方式)?(或任何方法可以继续安装 python 包并在创建 miniconda3 图像后保存这些包?)
=> ERROR [4/4] RUN conda env create --name data_science --file environment.yml 160.6s
------
> [4/4] RUN conda env create --name data_science --file environment.yml:
#8 8.635 Collecting package metadata (repodata.json): ...working... done
#8 148.5 Solving environment: ...working... failed
#8 148.5
#8 148.5 ResolvePackageNotFound:
#8 148.5 - vs2015_runtime==14.29.30037=h902a5da_5
#8 148.5 - python==3.9.7=h7840368_2_cpython
#8 148.5 - setuptools==58.0.4=py39hcbf5309_2
#8 148.5 - sqlite==3.36.0=h8ffe710_2
#8 148.5 - vc==14.2=hb210afc_5
#8 148.5 - openssl==1.1.1l=h8ffe710_0
#8 148.5 - ca-certificates==2021.5.30=h5b45459_0
#8 148.5 - ucrt==10.0.20348.0=h57928b3_0
#8 148.5
------
executor failed running [/bin/sh -c conda env create --name data_science --file environment.yml]: exit code: 1
ERROR: Service 'node' failed to build : Build failed
以下是我的 Dockerfile、docker-compose.yml、environment.yml 的详细信息。
Dockerfile
FROM continuumio/miniconda3
WORKDIR /data
COPY environment.yml environment.yml
RUN conda env create --name data_science --file environment.yml
码头工人-compose.yml
version: "3.8"
services:
node:
build: .
volumes:
- .:/data
ports:
- 8888:8888
image: node:data
container_name: miniconda3
command:
- jupyter notebook --port=8888 --ip=0.0.0.0 --allow-root
环境.yml
name: python_data_science
channels:
- conda-forge
- default
dependencies:
- ca-certificates=2021.5.30=h5b45459_0
- openssl=1.1.1l=h8ffe710_0
- pip=21.2.4=pyhd8ed1ab_0
- python=3.9.7=h7840368_2_cpython
- python_abi=3.9=2_cp39
- setuptools=58.0.4=py39hcbf5309_2
- sqlite=3.36.0=h8ffe710_2
- tzdata=2021a=he74cb21_1
- ucrt=10.0.20348.0=h57928b3_0
- vc=14.2=hb210afc_5
- vs2015_runtime=14.29.30037=h902a5da_5
- wheel=0.37.0=pyhd8ed1ab_1
prefix: C:\Users\tys\.conda\envs\python_data_science
希望得到帮助。提前致谢。
更新
失败的可能原因:
我认为这是因为当我在 Windows 10 上运行“conda export env > environment.yml”时,conda 将使用构建导出我的环境,但构建可能是特定于平台的,不适合安装在docker 容器中的 miniconda3 linux。有关更多信息,请参阅此 stackoverflow 论坛,从 windows 到 linux 的 conda 环境
可能的解决方案
(i)(尚不确定如何解决,但可能可以参考此博客文章以获取更多信息。感谢@merv)
(ii)repo2docker
解决方案
尝试在 DockerFile 的开头添加它-
FROM continuumio/miniconda3
或更改 docker-compose.yml 中的相应图像名称
推荐阅读
- oracle - 在 SQL Developer 中使用变量作为参数的简单查询
- vue.js - Vuex getter 返回太快
- android - IONIC:http请求在浏览器和开发应用程序中有效,但在apk中无效
- python - 如何让 Intellisense 与使用类属性装饰器的自定义 python 枚举一起工作
- python-3.x - 如何将 argparse 值传递给函数并将值分配给数据框?
- python-3.x - 使用 yticklabels = "auto" 从 sns.heatmap 获取行名
- javascript - NodeJS 将 base64 转换为八位字节流
- kubernetes - kubectl - 错误:您必须在裸机上登录到服务器
- sql - 如何修复 GROUP BY 中不允许的聚合函数?
- reactjs - 纱线升级后React中的Websocket握手错误