简体   繁体   中英

apache2 service status in Docker container

My Dockerfile as follow:

FROM php:7.2-apache

#install some basic tools
RUN apt-get -dd clean && apt-get -dd update && apt-get install -y \
    git \
    tree \
    vim \
    wget \
    iputils-ping \
    mysql-client \
    subversion

#install some base extensions
RUN apt-get install -y \
    libzip-dev \
    libicu-dev \
    zip \
  && docker-php-ext-configure zip --with-libzip \
  && docker-php-ext-configure intl \
  && docker-php-ext-install zip intl opcache pdo_mysql mysqli

#setup composer 
RUN curl -sS https://getcomposer.org/installer | php \
        && mv composer.phar /usr/local/bin/ \
        && ln -s /usr/local/bin/composer.phar /usr/local/bin/composer


WORKDIR /var/www/app

EXPOSE 80

RUN a2enmod rewrite

After I compose above image with mysql I start server eg

docker-compose up -d

And access the container by:

docker exec -it php_web_1 bash

Then I check the apache2 service status:

service apache2 status

[FAIL] apache2 is not running ... failed!

If I just run command : apache2

httpd (pid 1) already running

service apache2 start/stop does not have any effect on apache2 status.

What is the difference b/w both ways and why service apache2 start/stop is not working ?

If you look at the Dockerfile for the php:7.2-apache base image, you would see the CMD ["apache2-foreground"] which runs a script located in /usr/local/bin/ directory to run the Apache server upon the container startup. If you set an interactive session with the base image and run the SysVInit commands like service apache2 start , this will start the Apache service within the container which was stopped when you made the session.

In your case, try running the script in the Dockerfile located in the /usr/local/bin/ directory as the CMD command and re-run docker-compose up -d to see if the Apache is started or not.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM