我正在尝试使用此Dockerfile将Redis添加到php:7.0-apache图像中:
FROM php:7.0-apache
RUN apt-get update && apt-get -y install build-essential tcl
RUN cd /tmp \
&& curl -O http://download.redis.io/redis-stable.tar.gz \
&& tar xzvf redis-stable.tar.gz \
&& cd redis-stable \
&& make \
&& make install
COPY php.ini /usr/local/etc/php/
COPY public /var/www/html/
RUN chown -R root:www-data /var/www/html
RUN chmod -R 1755 /var/www/html
RUN find /var/www/html -type d -exec chmod 1775 {} +
RUN mkdir -p /var/redis/6379
COPY 6379.conf /etc/redis/6379.conf
COPY redis_6379 /etc/init.d/redis_6379
RUN chmod 777 /etc/init.d/redis_6379
RUN update-rc.d redis_6379 defaults
RUN service apache2 restart
RUN service redis_6379 start
它可以构建并运行,但是redis从未启动?当我在容器中运行/ bin / bash并手动输入“ service redis_6379 start”时,它可以工作,因此,我假设我的.conf和init.d文件都可以。
虽然我知道使用docker-compose会容易得多,但我特别想避免由于特定原因而不得不使用它。
答案 0 :(得分:1)
这里有很多错误:
ENTRYPOINT
在dockerfile中定义的入口点来完成此操作。该入口点通常是在启动实际容器时执行的脚本。service
呼叫将失败,无需进一步工作。如果您需要启动多个进程,则可以查找受监管程序的文档。我建议您先阅读docker documentation,然后再继续。所有这些都在此进行了深入的描述。
答案 1 :(得分:1)
我同意@Richard。根据您的需要使用两个或多个容器,然后-将它们链接起来,以使一切正常!