Сборка Docker: неудовлетворительные ограничения

Я пытаюсь настроить образ докера, который может запускать CVTree 3.0 (https://github.com/ghzuo/CVTree< /а>). Однако я получил эту ошибку:

    Sending build context to Docker daemon  206.1MB
Step 1/12 : FROM alpine AS dev
 ---> f70734b6a266
Step 2/12 : LABEL Version=0.1   MAINTAINER="Guanghong Zuo<[email protected]>"  description="Docker image for CVTree"
 ---> Using cache
 ---> 4c4fa0e01651
Step 3/12 : RUN echo "http://dl-4.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
 ---> Using cache
 ---> 8804b90fbc7c
Step 4/12 : RUN apk --update add --no-cache g++ make cmake zlib-dev hdf5-dev hdf5-static
 ---> Running in 8847a87b5dbd
fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/community/x86_64/APKINDEX.tar.gz
fetch http://dl-4.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
ERROR: unsatisfiable constraints:
  hdf5-dev (missing):
    required by: world[hdf5-dev]
  hdf5-static (missing):
    required by: world[hdf5-static]
The command '/bin/sh -c apk --update add --no-cache g++ make cmake zlib-dev hdf5-dev hdf5-static' returned a non-zero code: 2

Докерфайл:

## Stage for build cvtree
FROM alpine AS dev
LABEL Version=0.1 \
  MAINTAINER="Guanghong Zuo<[email protected]>"\
  description="Docker image for CVTree" 

## for develop environment
RUN echo "http://dl-4.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
RUN apk --update add --no-cache g++ make cmake zlib-dev hdf5-dev hdf5-static

## Build cvtree
WORKDIR /root
COPY ./src /root/cvtree/src
COPY ./CMakeLists.txt /root/cvtree/
RUN mkdir cvtree/build/ && cd cvtree/build/ && cmake .. && make 

## Stage for run cvtree 
FROM alpine AS run
COPY --from=dev /root/cvtree/build/bin/* /usr/local/bin/
RUN apk --update add --no-cache libgomp libstdc++

## for workplace
WORKDIR /root/data

Как я могу решить свою проблему? Любая помощь будет глубоко оценена.


person JasonZhang    schedule 24.05.2020    source источник
comment
Похоже, проблема в том, что apk не может найти пакеты hdf5-Dev и hdf5-static в своем списке доступных пакетов и, следовательно, не может его установить. Проверьте библиотеку пакетов apk и посмотрите, сможете ли вы найти ее там в стабильной или пограничной версии Alpine. вот ссылка на аналогичную проблему, которая может помочь: stackoverflow.com/questions/48892448/   -  person camba1    schedule 24.05.2020
comment
Пакеты hdf5-Dev и hdf5-static можно найти в версиях Edge Alpine. И я успешно собрал образ, когда использую другой компьютер неделю назад.   -  person JasonZhang    schedule 24.05.2020


Ответы (2)


Пакеты hdf5-Dev и hdf5-static отсутствовали в списке доступных пакетов, из-за чего сборка не удалась.

Попробуйте использовать образ докера сообщества alpine edge:

## for develop environment
RUN apk --update add --no-cache g++ make cmake zlib-dev
RUN apk add hdf5-dev hdf5-static --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community
person Vishnu Nair    schedule 24.05.2020
comment
Извините, это не работает. Я получил ту же ошибку и еще одну ошибку: dl-cdn.alpinelinux.org/alpine/edge /community: сетевая ошибка (проверьте подключение к Интернету и брандмауэр) ВНИМАНИЕ: Игнорирование APKINDEX.b53994b4.tar.gz: нет такого файла или каталога - person JasonZhang; 24.05.2020
comment
Ошибка связана с вашей сетью network error (check Internet connection and firewall) - person Vishnu Nair; 24.05.2020

Я выполнил следующее, и это сработало нормально

RUN apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/community hdf5-dev
person Liz Maple    schedule 06.08.2020