我有一个码头文件,我基于php:5.5.36-apache图像,用于创建图像明确的发展。我的Dockerfile安装了memcached,但我没有运气让memcached开始启动。如果我ssh进入容器并手动启动memcached,它启动就好了。使用官方的PHP码头图像和开始运行memcached
FROM php:5.5.36-apache
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
default-jdk
RUN apt-get install -y --no-install-recommends autoconf
RUN apt-get install -y --no-install-recommends python python-pip
RUN apt-get update && apt-get install -y libmemcached-dev \
apt-utils re2c g++ memcached \
zlib1g zlib1g-dbg zlib1g-dev zlibc mysql-client php5-mysql \
&& pecl install memcached \
&& docker-php-ext-enable memcached\
&& pecl install memcache \
&& docker-php-ext-enable memcache
RUN docker-php-ext-install pdo pdo_mysql
RUN apt-get install -y gettext
RUN pip install hgapi
RUN a2enmod headers \
&& a2enmod rewrite
COPY ./apache2.conf /etc/apache2/apache2.conf
RUN mkdir /var/www/content
EXPOSE 11211
RUN systemctl enable memcached.service
基本图像是基于Debian:杰西
您滥用RUN。 RUN可以帮助你安装和配置你需要的软件,ADD/COPY添加文件,ENV定义你的环境变量,CMD和ENTRYPOINT启动你的东西,因此它们在Mysql docker镜像中启动mysqld,在Apache docker镜像中启动Apache等等。我的Dockerfile中没有看到CMD或ENTRYPOINT。检查文档https://docs.docker.com/engine/reference/builder/#/cmd和https://docs.docker.com/engine/reference/builder/#/entrypoint – user2915097
我从头开始的图像一个启动apache的CMD,这真是让我困惑的部分。看到我的答案在下面,我现在好多了。 –