Docker Laravel Отказано в разрешении на открытие порта запуска - PullRequest
0 голосов
/ 05 мая 2020

Мы хотим докеризовать приложение Laravel, готовое к развертыванию на AWS ECR / ECS. Мы провели несколько тестов, но у нас возникли проблемы с конфигурацией apache.

Мы создали следующий файл Docker:

FROM php:7.4-apache

WORKDIR /var/www/html

# Copy composer.lock and composer.json
COPY composer.lock* composer.json* /var/www/html/

# install all the dependencies and enable PHP modules
RUN apt-get update && apt-get upgrade -y && apt-get install -y \
      procps \
      nano \
      git \
      unzip \
      libicu-dev \
      zlib1g-dev \
      libxml2 \
      libxml2-dev \
      libreadline-dev \
      supervisor \
      cron \
      libzip-dev \
      libpng-dev  \
    && docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd \
    && docker-php-ext-configure intl \
    && docker-php-ext-install \
      pdo_mysql \
      sockets \
      intl \
      opcache \
      zip \
      gd \
    && rm -rf /tmp/* \
    && rm -rf /var/list/apt/* \
    && rm -rf /var/lib/apt/lists/* \
    && apt-get clean

# disable default site and delete all default files inside APP_HOME
RUN a2dissite 000-default.conf

# put apache and php config for Laravel, enable sites
COPY ./docker/general/laravel.conf /etc/apache2/sites-available/laravel.conf
RUN a2ensite laravel.conf

# enable apache modules
RUN a2enmod rewrite
RUN a2enmod ssl

# Install composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN curl -sL https://deb.nodesource.com/setup_12.x -o nodesource_setup.sh
RUN bash nodesource_setup.sh

# NPM for frontend builds
RUN apt-get install nodejs

RUN rm nodesource_setup.sh

# Add user for laravel application
RUN groupadd -g 1000 www
RUN useradd -u 1000 -ms /bin/bash -g www www

# Copy existing application directory contents
COPY ./ /var/www/html

# Copy existing application directory permissions
COPY --chown=www:www . /var/www/html

# Change current user to www
USER www

# Expose port 9000 and start php-fpm server
EXPOSE 80

и docker -compose.yml:

version: '3'

services:
    laravel: &laravel-template
      image: laravel:latest
      build:
        context: .
        args:
          - "BUILD_ARGUMENT_ENV=dev"
          - "BUILD_ARGUMENT_DEBUG_ENABLED=false"
        dockerfile: ./Dockerfile
      container_name: laravel
      expose:
        - 80
      ports:
        - 8080:80
      volumes:
        - .:/var/www/html

Когда мы развертываем приложение, оно не показывает никаких ошибок, но мы полагаем, что это из-за открытия порта, если мы попытаемся запустить его локально с помощью docker run -it -p 8080:80 tok, оно покажет:

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
(13)Permission denied: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs

Мы что-то упускаем?

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