Q:

Couchbase PHP SDK in Docker Container

I have a Docker container that runs PHP-FPM 5.5 and I'd like to ensure that it has access to the Couchbase SDK. I have this working outside of Docker and can't really picture how Docker would interfere and yet I seem to be running into a problem that is "probably" docker related:
My Docker container runs under Ubuntu 14.04 and includes the following installation (after installing PHP):
# Install Couchbase C-library and PECL extension
RUN wget -O/etc/apt/sources.list.d/couchbase.list http://packages.couchbase.com/ubuntu/couchbase-ubuntu1404.list \
        && wget -O- http://packages.couchbase.com/ubuntu/couchbase.key | sudo apt-key add - \
        && apt-get update \
        && apt-get install -y --no-install-recommends pkg-config libcouchbase2-libevent libcouchbase-dev libmemcached-dev php-pear php5-dev make \
        && pecl config-set php_ini /app/conf/php.ini \
        && pecl install couchbase --alldeps \
        && pecl install memcached --alldeps \
        && { \
            echo "; Couchbase PHP SDK"; \
            echo "extension=/usr/lib/php5/20121212/couchbase.so"; \
        } > /etc/php5/fpm/conf.d/30-couchbase.ini \
        && cp /etc/php5/fpm/conf.d/30-couchbase.ini /etc/php5/cli/conf.d \
        && { \
            echo "; Memcached PHP SDK"; \
            echo "extension=/usr/lib/php5/20121212/memcached.so"; \
        } > /etc/php5/fpm/conf.d/30-memcached.ini \
        && cp /etc/php5/fpm/conf.d/30-memcached.ini /etc/php5/cli/conf.d

This SHOULD install both the C-libraries and the PECL extensions for Couchbase and Memcached support. In many ways it DOES appear to:

php -m does include these modules as installed,
and phpinfo() reports on their configuration as such:

However, whenever I try to instantiate either a Couchbase or Memcached class can't find the class. So if I run the following program: 
<?php
    $foo = new Couchbase();
    $bar = new Memcached();
    print_r($foo);
    print_r($bar);
?>

it gives me the following error:

PHP Fatal error:  Class 'Couchbase' not found in /app/test.php on line 2

UPDATE: It turns out, however, that while Couchbase does not work, Memcached does. Not sure if that helps or hurts the troubleshooting but Couchbase seems to be the exclusive pain point.

A:

The answer, it appears, has to do with Couchbase moving from their 1.x to 2.x SDK's which in the case of PHP means that there is no longer a class called "Couchbase". 
The longer term answer will be to migrate to this new API; which does look like it will require some work. In the near term, however, I needed a solution that would work for my existing use of Couchbase and that is quite simple ... just install the right version of Couchbase:
 pecl install couchbase-1.2.2

That's all that was needed for me. You can see a working Docker of this setup at: lifegadget/docker-php

Note: the default version of the SDK you get from PECL is now 2.0 so if you're not specifying a version you're getting version 2.x.

