FROM 32bit/ubuntu:14.04
# To run a container from this image:
# docker run -v $PWD:/p4php-dev <container_name>
# This Dockerfile assumes that the p4-php source code, and any dependencies,
# Will be mounted in /p4php-dev in the following directories
# //depot/main/p4-php -> p4php
# //3rd_party/cpp_libraries/openssl -> openssl
# //depot/main/p4 -> main/p4
# //depot/main/p4-bin/lib.linux26x86_64 -> main/p4-bin/lib.linux26x86_64
# //builds/main/p4-bin/bin.linux26x86_64/p4api.tgz -> p4api
ENV PHPVER 5.4.45
# Set 32-bit mode for all commands invoked with /bin/sh and /bin/bash
RUN mv /bin/sh /bin/sh.orig && \
echo '#!/bin/sh.orig\n/usr/bin/linux32 /bin/sh.orig "$@"' > /bin/sh && \
chmod +x /bin/sh
RUN mv /bin/bash /bin/bash.orig && \
echo '#!/bin/bash.orig\n/usr/bin/linux32 /bin/bash.orig "$@"' > /bin/bash && \
chmod +x /bin/bash
# Create source directories for building php and p4php
RUN mkdir /p4php-dev /php /php-src
# Install necessary packages
RUN apt-get update && apt-get install -y \
autoconf \
build-essential \
libcurl4-openssl-dev \
libssl-dev \
libxml2-dev \
pkg-config \
wget
# Copy build scripts
COPY php-get.sh /tmp/php-get.sh
COPY build-php.sh /tmp/build-php.sh
# Build PHP
RUN /tmp/php-get.sh $PHPVER
RUN /tmp/build-php.sh $PHPVER
# Add PHP to the path
ENV PATH /php/bin:$PATH
WORKDIR /p4php-dev
# Everything else should be mounted in /p4php-dev, so just run it:
CMD ["/p4php-dev/build-p4php.sh"]