Score:1

นักเทียบท่าพร้อม PHP-FPM & Nginx - 502 Bad Gateway

ธง de

ขณะนี้ฉันกำลังพยายามเชื่อมต่อแอปพลิเคชัน Laravel ฉันได้สร้าง Dockerfile และ docker-compose.yml ด้วยการอ้างอิงที่ฉันต้องการ อย่างไรก็ตาม ฉันกำลังดิ้นรนเพื่อให้ php-fpm เริ่มทำงานซึ่งจะแสดงแอปพลิเคชันของฉัน

ไฟล์นักเทียบท่า

# ตั้งค่าภาพหลัก
จาก php:8.0-fpm-อัลไพน์

# คัดลอกผู้แต่งล็อคและนักแต่งเพลง json
คัดลอกผู้แต่ง ล็อคผู้แต่ง json /var/www/html/

# ตั้งค่าไดเร็กทอรีการทำงาน
เวิร์กดีอาร์ /var/www/html

# ติดตั้งการพึ่งพาเพิ่มเติม
RUN อัปเดต apk && apk เพิ่ม --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 \
    โหนด \
    npm

# เพิ่มและเปิดใช้งานส่วนขยาย PHP-PDO
RUN นักเทียบท่า-php-ext-install pdo pdo_mysql
RUN docker-php-ext-enable pdo_mysql

# ติดตั้ง PHP นักแต่งเพลง
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=ผู้แต่ง

# ลบแคช
เรียกใช้ rm -rf /var/cache/apk/*

# เพิ่ม UID '1,000' ใน www-data
RUN usermod -u 1,000 www-ข้อมูล

# คัดลอกการอนุญาตไดเรกทอรีแอปพลิเคชันที่มีอยู่
คัดลอก --chown=www-data:www-data /var/www/html

# เปลี่ยนผู้ใช้ปัจจุบันเป็น www
USER www-ข้อมูล

# ติดตั้งการพึ่งพาแอพ
คัดลอก package.json /var/www/html/
ติดตั้ง RUN npm
RUN npm รัน dev

# เปิดเผยพอร์ต 9000 และเริ่มเซิร์ฟเวอร์ php-fpm
เปิดเผย 9000
CMD ["php-fpm"]

นักเทียบท่า-compose.yml

รุ่น: '3'
บริการ:

  #แอพ Laravel
  แอป:
    สร้าง:
      บริบท: .
      นักเทียบท่าไฟล์: Dockerfile
    ภาพ: heychazza/joinservers.com
    container_name: แอป
    รีสตาร์ท: เว้นแต่จะหยุด
    tty: จริง
    สิ่งแวดล้อม:
      SERVICE_NAME: แอป
      SERVICE_TAGS: ผู้พัฒนา
    working_dir: /var/www/html
    เปิดเผย:
      - "9000:80"
    ปริมาณ:
      - ./:/var/www/html
    เครือข่าย:
      - ไมเน็ต

  #บริการงินซ์
  จิงซ์:
    ภาพ: nginx:alpine
    ชื่อคอนเทนเนอร์: nginx
    รีสตาร์ท: เว้นแต่จะหยุด
    tty: จริง
    พอร์ต:
      - "8080:80"
    ปริมาณ:
      - ./:/var/www/html
      - ./deployment/nginx/conf.d/:/etc/nginx/conf.d/
      #- ./nginx/ssl/:/etc/nginx/ssl/
    ขึ้นอยู่กับ:
      - แอป
    เครือข่าย:
      - ไมเน็ต

  บริการ #MySQL
  ฐานข้อมูล:
    ภาพ: mariadb:ล่าสุด
    ชื่อคอนเทนเนอร์: ฐานข้อมูล
    รีสตาร์ท: เว้นแต่จะหยุด
    tty: จริง
    พอร์ต:
      - "33060:3306"
    สิ่งแวดล้อม:
      MYSQL_DATABASE: laraveldb
      MYSQL_USER: laravel
      MYSQL_PASSWORD: laravelpassworddb
      MYSQL_ROOT_PASSWORD: rootpasswordmysql
      MYSQL_ROOT_HOST: '%'
    ปริมาณ:
      - mysqldata:/var/lib/mysql/
    เครือข่าย:
      - ไมเน็ต

#นักเทียบท่าเครือข่าย
เครือข่าย:
  ไมเน็ต:
    คนขับ: สะพาน
#วอลุ่ม
ปริมาณ:
  mysqldata:
    คนขับ: ท้องถิ่น

ฉันกำลังทำอะไร? ฉันใช้ Docker จาก MacBook และกำลังต้องการปรับใช้กับเครื่อง Debian ที่ใช้งานจริง

ฉันยังใหม่กับนักเทียบท่า ดังนั้นขออภัยหากฉันพลาดอะไรไป

Michael Hampton avatar
cz flag
การกำหนดค่า nginx คืออะไร?
Score: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;
    }

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา