Докер / пользователь / sbin / apache2ctl: не найден - PullRequest
0 голосов
/ 17 ноября 2018

Эта проблема не является дубликатом «/ bin / sh: 1:« apache2ctl »,: not found» в докере

Это простой файл докера, который я использовал для laravelFramework в операционной системе Ubuntu.

version : '3'

services:
  web: 
    container_name: ${APP_NAME}_web
    build:
      context: ./docker/web
    ports:
      - 9000:80
    volumes:
      - ./:/var/www/app

И это файл Docker, расположенный в Docker / Web

FROM php:7.2.10-apache-stretch

RUN apt-get update -yqq && \
    apt-get install -y apt-utils zip unzip && \
    apt-get install -y nano && \
    apt-get install -y libzip-dev libpq-dev && \
    a2enmod rewrite && \
    docker-php-ext-install pdo_pgsql && \
    docker-php-ext-install pgsql && \
    docker-php-ext-configure zip --with-libzip && \
    docker-php-ext-install zip && \
    rm -rf /var/lib/apt/lists/*

RUN php -r "readfile('http://getcomposer.org/installer');"|php -- --install-dir=/usr/bin --filename=composer

COPY Default.conf /etc/apache2/sites-enabled/000-default.conf

WORKDIR /var/www/app

EXPOSE 80

CMD ['/usr/sbin/apache2ctl', '-D', 'FOREGROUND']

Когда я запускаю эту команду

sudo docker-compose up

Вывод терминала - это ошибка

Starting Docker_Laravel_web ... done
Attaching to Docker_Laravel_web
Docker_Laravel_web | /bin/sh: 1: [/usr/sbin/apache2ctl,: not found
Docker_Laravel_web exited with code 127

Нужна помощь, чтобы исправить это,

Ответы [ 2 ]

0 голосов
/ 17 ноября 2018

Синтаксис Dockerfile, в котором есть элементы, похожие на списки JSON, на самом деле не является JSON и довольно требователен к его цитированию. В частности, в вашей последней строке

CMD ['/usr/sbin/apache2ctl', '-D', 'FOREGROUND']

Вы должны использовать двойные кавычки

CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]

в противном случае Docker интерпретирует ее как форму «запустить оболочку по этой команде», поэтому в сообщении об ошибке вы видите [ и ,.

0 голосов
/ 17 ноября 2018

Похоже, что не установил приложение Apache

Вы должны добавить еще 1 командную строку в RUN

apt-get install -y apache2 &&\

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...