Мне нужно установить cURL, скомпилированный с OpenSSL и zlib через Dockerfile для изображения Debian с apache и php 5.6. Я пробовал много подходов, но из-за того, что у меня нет понимания строк в Linux, не удалось. Я использую docker-compose для моего контейнера. докер-compose.yaml выглядит следующим образом:Установить cURL, скомпилированный с OpenSSL и zlib в файле Docker
version: '2'
services:
web:
build: .
command: php -S 0.0.0.0:80 -t /var/www/html/
ports:
- "80:80"
depends_on:
- db
volumes:
- $PWD/www/project:/var/www/html
container_name: "project-web-server"
db:
image: mysql:latest
ports:
- "192.168.99.100:3306:3306"
container_name: "project-db"
environment:
MYSQL_DATABASE: dbname
MYSQL_USER: dbuser
MYSQL_PASSWORD: dbpass
MYSQL_ROOT_PASSWORD: dbpass
В сценарии построения я использую Dockerfile:
FROM php:5-fpm
RUN apt-get update && apt-get install -y \
apt-utils \
curl libcurl3 libcurl3-dev php5-curl php5-mcrypt
RUN docker-php-ext-install -j$(nproc) curl
'Докер-PHP-вн-установки' является вспомогательным скрипт из базового изображения https://hub.docker.com/_/php/
Проблема в том, что после , который является успешным, не получите изображение с помощью cURL + SSL + zlib. После $ docker-compose up
У меня есть рабочий контейнер с Apache + MySQL и я могу запустить свой проект, но библиотеки мне не нужны.
Не могли бы вы объяснить, как правильно добавить эти расширения в мой apache в контейнере? Я даже пытался создать свой собственный файл Docker и создавать там apache + php + необходимые библиотеки, но не имел результата.
спасибо. Я прочитал ссылку на COPY в Dockerfile и до сих пор не понимаю, что мне нужно скопировать. Я имею в виду, что я отображаю объемы в файле docker-compose.yaml. Когда контейнеры запускают сервер из «project-web-server», контейнер работает с моими локальными файлами проекта. Но cURL с SSL и zlib не являются расширениями apache в отношении phpinfo и ошибок кода из моих сценариев. –
a Dockerfile - это всего лишь серия команд, которые выполняются для создания вашего изображения докеров. Вам нужно использовать команду COPY для передачи файлов локальных проектов в контейнер, что и есть COPY./some/path/inside/container делает .... Я предлагаю вам сначала начать работу с более простым контейнером докеров ... помните только ОДИН процесс на контейнер –