【问题标题】:Cannot install php, apache and postgres on ubuntu base image in dockerfile无法在 dockerfile 中的 ubuntu 基础映像上安装 php、apache 和 postgres
【发布时间】:2020-08-20 05:54:01
【问题描述】:

我最近开始学习 docker,想在一个 ubuntu 基础镜像中安装 php、apache 和 postgres。但构建后无法运行。

这是我的 Dockerfile

FROM ubuntu:16.04


RUN apt-get update

RUN apt-get -qq -y install curl
RUN apt-get -y install apache2
RUN apt-get -y install php7.0
RUN apt-get -y install libapache2-mod-php7.0
RUN apt-get -y install php7.0-mysql
RUN apt-get -y install php7.0-pgsql
RUN apt-get -y install php7.0-gd
RUN apt-get -y install php-pear
RUN apt-get -y install php7.0-curl

COPY . /var/www/html

EXPOSE 80

你能帮帮我吗?

谢谢。

【问题讨论】:

  • 通常你会在两个或三个单独的容器中运行它; standard php image 包含一个 ...-apache 变体,它将 PHP 解释器和 Apache 捆绑在一起,但您仍然需要一个单独的数据库容器。
  • 我知道我应该在单独的容器中运行它,我稍后再做。首先,我想尝试所有功能。我还用php:apache 作为基础镜像做了一些实验。现在我正在尝试在 ubuntu 基础映像上安装 php、apache、postgres。

标签: docker


【解决方案1】:

这里有几个问题。首先,我的印象是您将 docker 和虚拟机混为一谈。为此,我建议去阅读有什么区别。

关于你的问题,问题是基础图像(ubuntu:16.04)有CMD bash(或类似的东西,我真的没有检查),因此不考虑php。

为了启动 apache,您应该附加以下内容:

CMD . /etc/apache2/envvars && /usr/sbin/apache2ctl -DFOREGROUND

无论如何,我建议你检查一下php官方图片。

【讨论】:

  • 非常感谢您的帮助!但此命令显示 Apache2 ubuntu 默认页面。我在 docker 的同一目录中有一个 index.php 页面,无法显示。你能帮我多一点吗?
  • 好吧,你需要设置 apache。我对这个主题的了解相当陈旧,所以我建议一些关于在 ubuntu 上设置 apache2 和 php7 的基本谷歌搜索。
猜你喜欢
  • 1970-01-01
  • 2019-08-02
  • 2014-03-09
  • 1970-01-01
  • 2018-09-29
  • 1970-01-01
  • 1970-01-01
  • 2016-03-11
  • 2014-02-18
相关资源
最近更新 更多