Архивы: Docker

Сборка своего Dockerfile c PHP 5.3 + ioncube + memcache

Понадобилось собрать образ с PHP 5.3 + ioncube + memcache для развертывания древнего сайта на новом сервере, получилось как-то так:

Dockerfile

FROM ubuntu:12.04
MAINTAINER Alexander Schenkel <alex@alexi.ch>

VOLUME ["/var/www"]

RUN apt-get update && \
    apt-get install -y \
      wget \
      apache2 \
      php5 \
      php5-cli \
      libapache2-mod-php5 \
      php5-gd \
      php5-ldap \
      php5-mysql \
      php5-pgsql \
      php5-memcached \
      php5-memcache

#install ioncube
RUN wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
RUN tar xvfz ioncube_loaders_lin_x86-64.tar.gz
RUN cp ioncube/*.so /usr/lib/php5/2*/
RUN echo zend_extension = /usr/lib/php5/2*/ioncube_loader_lin_5.3.so > /etc/php5/apache2/conf.d/00-ioncube.ini
RUN service apache2 restart

COPY apache_default /etc/apache2/sites-available/default
COPY run /usr/local/bin/run
RUN echo "extension=memcached.so" >> /etc/php5/apache2/php.ini
RUN chmod +x /usr/local/bin/run
RUN a2enmod rewrite

EXPOSE 80
CMD ["/usr/local/bin/run"]

собираем образ

docker build --tag myphp53:1.0 .

docker-compose.yml

version: '2'

networks:
  app-tier:
      driver: bridge

services:
    memcached:
        image: 'bitnami/memcached:latest'
        networks:
            - app-tier
    php53:
        image: 'myphp53:1.0'
        volumes:
            - "/var/www/vhosts/site.ru/httpdocs:/var/www"
        ports:
            - "8080:80"
                                        
        networks:
            - app-tier

и потом

docker-compose up -d