Как использовать Dockerfile для установки openssl?

Я создаю образ докера для приложения, которому требуется OpenSSL 1.1.1 вместо версии 3.0 по умолчанию.

Я добавил следующую команду в Dockerfile

RUN wget -O - https://www.openssl.org/source/openssl-1.1.1u.tar.gz | tar zxf -
RUN cd openssl-1.1.1u 
RUN ./config --prefix=/usr/local

Однако строка RUN ./config --prefix=/usr/local выдает следующую ошибку во время построения изображения.

Ошибка: сбой сборки: ОШИБКА: не удалось решить: процесс «/bin/sh -c ./config --prefix=/usr/local» не завершился успешно: код выхода: 127

Как я могу исправить эту ошибку?

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
0
0
868
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Каждая команда RUN является отдельной, поэтому компакт-диск не сохраняется между ними; вам нужно будет сделать что-то вроде:

RUN wget -O - https://www.openssl.org/source/openssl-1.1.1u.tar.gz | tar zxf -
RUN cd openssl-1.1.1u; ./config --prefix=/usr/local

Кроме того, каждая команда RUN создает новый слой в полученном образе Docker; если вы хотите получить тонкие изображения и особенно если вы хотите очистить файлы, вы можете объединить их еще больше:

RUN wget -O - https://www.openssl.org/source/openssl-1.1.1u.tar.gz | tar zxf -; \
    cd openssl-1.1.1u; \
    ./config --prefix=/usr/local

(очистка файлов действительно удаляет их только в том случае, если она выполняется на том же слое; в противном случае файлы все еще находятся там, просто помечены как удаленные)

Другие вопросы по теме