2017-04-16 59 views
0

我正在努力用啓用了mcrypt的Debian Wheezy,Apache 2.2,PHP 5構建一個Docker鏡像。我想用它來對古怪的傳統prestashop應用程序進行一些維護。構建一個不贊成的依賴關係的Docker鏡像

大多數半自動程序包括Apache 2.4,並且不起作用。我原以爲現在會有一個在線工具來自動生成Docker鏡像以符合規範。

我應該怎麼做?我應該使用Docker組合嗎?

+1

從某種意義上說,Dockerfile **是您正在討論的工具 - 它允許您準確指定您的映像中安裝/配置的內容。 (雖然我承認通常安裝程序是不平凡的!) –

+1

我不確定我是否理解您的具體問題。當使用'debian:wheezy'作爲基礎圖像構建圖像時,您可以直接從Wheezy的官方存儲庫中輕鬆設置Apache 2.2和PHP 5。 – helmbert

+0

你是正確的謝謝。我想我差點弄明白了。只需要找到一種在圖像運行時啓動mysql和apache的方法。 –

回答

0

這是我到目前爲止。我只缺少如何在圖像運行時啓動mysql和apache。

FROM debian:wheezy 

RUN apt-get update && \ 
    apt-get install -y libmcrypt-dev \ 
    subversion ssl-cert nano wget unzip && \ 
    echo "deb http://packages.dotdeb.org wheezy-php56 all" >> /etc/apt/sources.list.d/dotdeb.list && \ 
    echo "deb-src http://packages.dotdeb.org wheezy-php56 all" >> /etc/apt/sources.list.d/dotdeb.list && \ 
    wget http://www.dotdeb.org/dotdeb.gpg -O- | apt-key add - && \ 
    echo mysql-server-5.5 mysql-server/root_password password yourpass | debconf-set-selections && \ 
    echo mysql-server-5.5 mysql-server/root_password_again password yourpass | debconf-set-selections && \ 
    apt-get update && \ 
    apt-get install -y \ 
    apache2 apache2-doc apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common libapache2-mod-php5 \ 
    openssl php-pear php5 php5-cli php5-common php5-curl php5-gd php5-mcrypt php5-mysql php5-memcache php5-readline \ 
    subversion ssl-cert nano wget unzip \ 
    mysql-server-5.5 mysql-client mysql-client-5.5 mysql-common && \ 
    /etc/init.d/mysql start && \ 
    mysql -u root -pyourpass -e "create database mydb;" && \ 
    rm -rf /var/lib/apt/lists/* && \ 
    rm /etc/apache2/sites-enabled/000-default && \ 
    mkdir -p /var/www/html && \ 
    chown www-data:www-data -R /var/www/html/ 

COPY conf/etc/ /etc/ 
COPY mydump.sql /var/www/html/mydump.sql 

RUN /etc/init.d/mysql start && \ 
    mysql -u root -pyourpass -h localhost mydb < /var/www/html/mydump.sql && \ 
    rm /var/www/html/mydump.sql 

VOLUME ["/var/www", "/var/log/apache2", "/etc/apache2", "/var/lib/mysql"] 

EXPOSE 80 443 3306