首页 > 解决方案 > 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

标签: pythondockerdocker-composeyamlminiconda

解决方案


尝试在 DockerFile 的开头添加它-

FROM continuumio/miniconda3

或更改 docker-compose.yml 中的相应图像名称


推荐阅读