【问题标题】:Building a Docker image with deprecated dependencies使用已弃用的依赖项构建 Docker 映像
【发布时间】:2017-09-12 03:51:28
【问题描述】:

我正在努力使用启用 mcrypt 的 Debian Wheezy、Apache 2.2、PHP 5 构建 Docker 映像。我想用它对一个古怪的旧 prestashop 应用程序进行一些维护。

大多数半自动程序都包含 Apache 2.4,但它不起作用。我原以为现在会有一个在线工具来自动生成符合规范的 Docker 镜像。

我该怎么做?我应该使用 Docker compose 吗?

【问题讨论】:

  • 从某种意义上说,Dockerfile 您正在谈论的工具 - 它允许您准确指定映像中安装/配置的内容。 (尽管我接受通常的安装过程并不简单!)
  • 我不确定我是否理解您的具体问题。在以debian:wheezy 作为基础镜像构建镜像时,您可以直接从 Wheezy 的官方存储库轻松设置 Apache 2.2 和 PHP 5。
  • 你说得对,谢谢。我想我几乎想通了。只需要找到一种在镜像运行时启动 mysql 和 apache 的方法。

标签: php apache docker debian mcrypt


【解决方案1】:

这是我目前所拥有的。我只是想念如何在图像运行时启动 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

【讨论】:

    猜你喜欢
    • 2020-02-19
    • 2015-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-03
    • 1970-01-01
    相关资源
    最近更新 更多