Puncte:1

Docker cu PHP-FPM și Nginx - 502 Bad Gateway

drapel de

În prezent, încerc să dockerizez o aplicație Laravel, am reușit să-mi creez Dockerfile și docker-compose.yml cu dependențele de care am nevoie. Cu toate acestea, mă străduiesc să lansez php-fpm, care să arate aplicația mea.

Dockerfile

# Setați imaginea principală
DE LA php:8.0-fpm-alpin

# Copiați composer.lock și composer.json
COPIEAZĂ composer.lock composer.json /var/www/html/

# Setați directorul de lucru
WORKDIR /var/www/html

# Instalați dependențe suplimentare
RUN actualizare apk && adăugare apk --no-cache \
    build-base shadow vim curl \
    php8 \
    php8-fpm \
    php8-comun \
    php8-pdo \
    php8-pdo_mysql \
    php8-mysqli \
    php8-mbstring \
    php8-xml \
    php8-openssl \
    php8-json \
    php8-phar \
    php8-zip \
    php8-gd \
    php8-dom \
    sesiune php8 \
    php8-zlib \
    nodejs \
    npm

# Adăugați și activați extensii PHP-PDO
RUN docker-php-ext-install pdo pdo_mysql
RUN docker-php-ext-enable pdo_mysql

# Instalați PHP Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

# Eliminați memoria cache
RUN rm -rf /var/cache/apk/*

# Adăugați UID „1000” la www-data
RUN usermod -u 1000 www-data

# Copiați permisiunile existente ale directorului aplicației
COPY --chown=www-data:www-data . /var/www/html

# Schimbați utilizatorul actual în www
UTILIZATOR www-date

# Instalați dependențe de aplicație
COPY package.json /var/www/html/
RUN instalarea npm
RUN npm rulare dev

# Expuneți portul 9000 și porniți serverul php-fpm
EXPUNERE 9000
CMD [„php-fpm”]

docker-compose.yml

versiunea: '3'
Servicii:

  Aplicația #Laravel
  aplicatie:
    construi:
      context: .
      dockerfile: Dockerfile
    imagine: heychazza/joinservers.com
    container_name: app
    reporniți: dacă nu este oprit
    tty: adevărat
    mediu inconjurator:
      SERVICE_NAME: aplicație
      SERVICE_TAGS: dev
    work_dir: /var/www/html
    expune:
      - „9000:80”
    volume:
      - ./:/var/www/html
    retele:
      - mynet

  Serviciul #Nginx
  nginx:
    imagine: nginx:alpine
    container_name: nginx
    reporniți: dacă nu este oprit
    tty: adevărat
    porturi:
      - „8080:80”
    volume:
      - ./:/var/www/html
      - ./deployment/nginx/conf.d/:/etc/nginx/conf.d/
      #- ./nginx/ssl/:/etc/nginx/ssl/
    depinde de:
      - aplicație
    retele:
      - mynet

  Serviciul #MySQL
  db:
    imagine: mariadb:latest
    nume_container: db
    reporniți: dacă nu este oprit
    tty: adevărat
    porturi:
      - „33060:3306”
    mediu inconjurator:
      MYSQL_DATABASE: laraveldb
      MYSQL_USER: laravel
      MYSQL_PASSWORD: laravelpassworddb
      MYSQL_ROOT_PASSWORD: rootpasswordmysql
      MYSQL_ROOT_HOST: „%”
    volume:
      - mysqldata:/var/lib/mysql/
    retele:
      - mynet

#Docker Networks
retele:
  mynet:
    şofer: pod
#Volume
volume:
  mysqldata:
    șofer: local

Ce fac? Rulez Docker de pe un MacBook și caut să implementez acest lucru pe o mașină Debian de producție.

Sunt încă nou în docker, așa că îmi cer scuze dacă am omis ceva.

Michael Hampton avatar
drapel cz
Care este configurația nginx?
Puncte:1
drapel de

Rezolvat, se pare că trebuia să schimb locația php în.

    locație ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_index index.php;
        aplicația fastcgi_pass:9000;
        include fastcgi_params;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.