1+ ARG PHP_VERSION
2+ FROM bref/build-php-$PHP_VERSION as ext
3+
4+ ENV LIBMEMCACHED_BUILD_DIR=${BUILD_DIR}/libmemcached
5+
6+ RUN set -xe; \
7+ mkdir -p ${LIBMEMCACHED_BUILD_DIR}; \
8+ # Download and upack the source code
9+ curl -Ls https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz \
10+ | tar xzC ${LIBMEMCACHED_BUILD_DIR}
11+
12+ # patch from https://src.fedoraproject.org/rpms/libmemcached/raw/HEAD/f/libmemcached-build.patch for build with GCC7
13+ COPY libmemcached-build.patch ${LIBMEMCACHED_BUILD_DIR}/libmemcached-1.0.18/libmemcached-build.patch
14+
15+ # Move into the unpackaged code directory
16+ WORKDIR ${LIBMEMCACHED_BUILD_DIR}/libmemcached-1.0.18/
17+
18+ # Install
19+ RUN set -xe; \
20+ patch -d . -p0 < libmemcached-build.patch && \
21+ ./configure --prefix=${INSTALL_DIR} && \
22+ make && \
23+ make install
24+
25+ RUN pecl install memcache
26+ RUN cp /opt/bref/lib/php/extensions/no-debug-zts-*/memcache.so /tmp/memcache.so
27+
28+ RUN pecl install --onlyreqdeps --nobuild memcached && \
29+ cd "$(pecl config-get temp_dir)/memcached" && \
30+ phpize && \
31+ ./configure --with-libmemcached-dir=${INSTALL_DIR} --disable-memcached-sasl && \
32+ make && \
33+ make install && \
34+ cd -
35+
36+ RUN cp /opt/bref/lib/php/extensions/no-debug-zts-*/memcached.so /tmp/memcached.so
37+
38+ # Build the final image from the lambci image that is close to the production environment
39+ FROM lambci/lambda:provided
40+
41+ # Copy things we installed to the final image
42+ COPY --from=ext /opt/bref/include/libmemcached/ /opt/bref/include/libmemcached/
43+ COPY --from=ext /opt/bref/include/libmemcached-1.0/ /opt/bref/include/libmemcached-1.0/
44+ COPY --from=ext /opt/bref/include/libmemcachedutil-1.0/ /opt/bref/include/libmemcachedutil-1.0/
45+ COPY --from=ext /opt/bref/include/libhashkit/ /opt/bref/include/libhashkit/
46+ COPY --from=ext /opt/bref/include/libhashkit-1.0/ /opt/bref/include/libhashkit-1.0/
47+
48+ COPY --from=ext /opt/bref/lib/libhashkit.* /opt/bref/lib/
49+ COPY --from=ext /opt/bref/lib/libmemcached.* /opt/bref/lib/
50+ COPY --from=ext /opt/bref/lib/libmemcachedutil.* /opt/bref/lib/
51+ COPY --from=ext /opt/bref/lib/pkgconfig/libmemcached.pc /opt/bref/lib/pkgconfig/libmemcached.pc
52+
53+ COPY --from=ext /tmp/memcache.so /opt/bref-extra/memcache.so
54+ COPY --from=ext /tmp/memcached.so /opt/bref-extra/memcached.so
0 commit comments