I am trying to install Xdebug or Redis package in a Docker container from pecl. Installation failed and returns an error:
There are no releases available for package "pecl.php.net/xdebug".
Example for Xdebug: https://pecl.php.net/package/xdebug/3.1.0
My docker-compose.yaml
version: '3'
networks:
app-network:
services:
site:
build:
context: .
dockerfile: nginx.dockerfile
container_name: my_nginx
ports:
- "8082:80"
- "443:443"
volumes:
- ./src:/var/www/html
depends_on:
- php
- db
- redis
networks:
- app-network
db:
image: percona
container_name: my_db
restart: on-failure
tty: true
ports:
- "3314:3306"
volumes:
- ./percona:/var/lib/percona
environment:
MYSQL_DATABASE: mydb
MYSQL_USER: me
MYSQL_PASSWORD: 123
MYSQL_ROOT_PASSWORD: 456
SERVICE_TAGS: dev
SERVICE_NAME: db
networks:
- app-network
php:
build:
context: .
dockerfile: php.dockerfile
container_name: my_php
volumes:
- ./src:/var/www/html
ports:
- "9000:9000"
networks:
- app-network
composer:
image: frojd/composer-php-7.4
container_name: my_composer
volumes:
- ./src:/var/www/html
working_dir: /var/www/html
depends_on:
- php
networks:
- app-network
redis:
image: redis:alpine
container_name: my_redis
volumes:
- ./redis:/data
restart: on-failure
command: redis-server --appendonly yes --requirepass "${REDIS_PASSWORD}"
ports:
- 6380:6379
networks:
- app-network
npm:
image: node:14.18.0
container_name: my_npm
volumes:
- ./src:/var/www/html
working_dir: /var/www/html
entrypoint: ['npm']
artisan:
build:
context: .
dockerfile: php.dockerfile
container_name: my_artisan
volumes:
- ./src:/var/www/html
depends_on:
- db
working_dir: /var/www/html
entrypoint: ['php', '/var/www/html/artisan']
networks:
- app-network
cron:
build:
context: .
dockerfile: cron.dockerfile
container_name: my_cron
volumes:
- ./src:/var/www/html
networks:
- app-network
My php.dockerfile
FROM php:7.4-fpm
WORKDIR /var/www/html
RUN apt-get update &&
apt-get install ca-certificates &&
apt-get clean
RUN docker-php-ext-install pdo pdo_mysql
RUN pecl install xdebug
&& docker-php-ext-enable xdebug
&& echo "xdebug.remote_enable=on" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
&& echo "xdebug.remote_host = host.docker.internal" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
What is the cause of the error and how can I fix it?
2
Answers
You may be behind a proxy… I resolved this same problem by setting the proxy for PECL specifically (the environment variable alone $HTTP_PROXY won’t work).
This answer helped me: https://stackoverflow.com/a/11195778/256762. Hope mine’s help as well 😉.
I was having a similar issue and had to replace the way I was installing xdebug
Before:
After: