Docker / user / sbin / apache2ctl: не найдено

Эта проблема не дублирует «/ Bin / sh: 1:« apache2ctl »,: не найдено» в докере

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

version : '3'

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

И это файл докера, расположенный в 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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
0
2 136
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

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

apt-get install -y apache2 &&\

Нет, Apache2 доступен в образе

Danushka herath 17.11.2018 07:39

может ты сможешь запустить CMD ["apache2", '-D', 'FOREGROUND']

RicoChen 17.11.2018 07:51

Docker_Laravel_web | [Сб, 17 ноября, 23: 00: 15.344434 2018] [core: warn] [pid 1] AH00111: переменная конфигурации $ {APACHE_RUN_DIR} не определена Docker_Laravel_web | apache2: синтаксическая ошибка в строке 80 /etc/apache2/apache2.conf: DefaultRuntimeDir должен быть допустимым каталогом, абсолютным или относительным по отношению к ServerRoot

Danushka herath 18.11.2018 00:01

Думаю проблема в твоей конфигурации

RicoChen 18.11.2018 07:22

Я исправил это с помощью ответа выше. Спасибо большое за помощь!

Danushka herath 18.11.2018 13:55
Ответ принят как подходящий

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

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

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

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

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

Другие вопросы по теме