Рейтинг:1

Docker с PHP-FPM и Nginx — 502 Bad Gateway

флаг de

В настоящее время я пытаюсь докеризировать приложение Laravel, мне удалось создать свой Dockerfile и docker-compose.yml с нужными мне зависимостями. Тем не менее, я изо всех сил пытаюсь заставить php-fpm включиться, чтобы показать мое приложение.

Докерфайл

# Установить мастер-образ
ИЗ php:8.0-fpm-alpine

# Скопируйте composer.lock и composer.json
КОПИРОВАТЬ composer.lock composer.json /var/www/html/

# Установить рабочий каталог
РАБОЧИЙ КАТАЛОГ /var/www/html

# Установить дополнительные зависимости
RUN apk update && apk add --no-cache \
    построить базовую тень vim curl \
    php8 \
    php8-fpm \
    php8-общий \
    php8-pdo \
    php8-pdo_mysql\
    php8-mysqli \
    php8-mbstring \
    php8-xml \
    php8-openssl \
    php8-json \
    php8-фар\
    php8-zip \
    php8-gd \
    php8-дом \
    сессия php8 \
    php8-zlib \
    узлы \
    нпм

# Добавить и включить расширения PHP-PDO
ЗАПУСК docker-php-ext-install pdo pdo_mysql
ЗАПУСК docker-php-ext-enable pdo_mysql

# Установить компоновщик PHP
ЗАПУСК curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

# Удалить кеш
ВЫПОЛНИТЬ rm -rf /var/cache/apk/*

# Добавьте UID '1000' к www-данным
RUN usermod -u 1000 www-данные

# Скопировать существующие разрешения каталога приложений
КОПИРОВАТЬ --chown=www-данные:www-данные. /var/www/html

# Изменить текущего пользователя на www
ПОЛЬЗОВАТЕЛЬ www-данные

# Установить зависимости приложения
КОПИРОВАТЬ package.json /var/www/html/
ЗАПУСТИТЬ установку npm
ЗАПУСК npm запустить dev

# Выставляем порт 9000 и запускаем сервер php-fpm
ВЫСТАВИТЬ 9000
CMD ["php-fpm"]

докер-compose.yml

версия: '3'
Сервисы:

  #Приложение Laravel
  приложение:
    строить:
      контекст: .
      докерфайл: Докерфайл
    изображение: heychazza/joinservers.com
    имя_контейнера: приложение
    перезапуск: если не остановлен
    телетайп: правда
    среда:
      SERVICE_NAME: приложение
      SERVICE_TAGS: разработка
    рабочий_каталог: /var/www/html
    разоблачать:
      - "9000:80"
    тома:
      - ./:/var/www/html
    сети:
      - майнет

  #Сервис Nginx
  нгинкс:
    изображение: nginx:alpine
    имя_контейнера: nginx
    перезапуск: если не остановлен
    телетайп: правда
    порты:
      - "8080:80"
    тома:
      - ./:/var/www/html
      - ./развертывание/nginx/conf.d/:/etc/nginx/conf.d/
      #- ./nginx/ssl/:/etc/nginx/ssl/
    зависит от:
      - приложение
    сети:
      - майнет

  #Служба MySQL
  дБ:
    изображение: mariadb: последний
    имя_контейнера: БД
    перезапуск: если не остановлен
    телетайп: правда
    порты:
      - "33060:3306"
    среда:
      MYSQL_DATABASE: ларавелдб
      MYSQL_USER: ларавель
      MYSQL_PASSWORD: laravelpassworddb
      MYSQL_ROOT_PASSWORD: rootpasswordmysql
      MYSQL_ROOT_HOST: '%'
    тома:
      - mysqldata:/var/lib/mysql/
    сети:
      - майнет

#Докер Сети
сети:
  майнет:
    водитель: мост
#Тома
тома:
  mysqldata:
    водитель: местный

Что я делаю? Я запускаю Docker с MacBook и хочу развернуть его на рабочей машине Debian.

Я все еще новичок в докере, поэтому извиняюсь, если что-то упустил.

Michael Hampton avatar
флаг cz
Какая конфигурация nginx?
Рейтинг:1
флаг de

Решено, оказывается, мне нужно было изменить местоположение php на.

    расположение ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_index index.php;
        приложение fastcgi_pass: 9000;
        включить fastcgi_params;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.