簡體   English   中英

安裝 mysqli 擴展后的 Docker php:php7.4-apache boot-loop

[英]Docker php:php7.4-apache boot-loop after installing mysqli extension

我目前正在嘗試使用 mysql 和 php 和 apache 在 Docker 容器中運行我的網站。

Docker-撰寫:

version: '3.7'
services:
  mysql:
    image: mysql:latest
    container_name: mysql
    restart: always
    environment:
      //Database configuration variables

    volumes:
      - ./data/mysql/database:/var/lib/mysql

  webserver:
    image: php:7.4.12-apache
    depends_on:
      - mysql
    restart: always
    volumes:
      - ./data/webserver:/var/www/html/
    ports:
      - 8888:80
    command: bash -c "docker-php-ext-install mysqli && kill -HUP 1"

  phpmyadmin:
    depends_on:
      - mysql
    image: phpmyadmin:latest
    container_name: phpmyadmin
    links:
      - mysql:db
    restart: always
    ports:
     - 8889:80
    volumes:
     - /sessions

在我將命令塊添加到 webserver-container 后,問題就開始了。 沒有它,容器運行完美,我可以訪問網站。 但是使用該命令,容器會卡在引導循環中,並且它似乎試圖一遍又一遍地運行該命令。 至少這是我在查看網絡服務器容器的日志后的猜測。 但是,當我使用docker exec -it *webserver* bash並直接在容器中運行安裝命令時,它運行良好。 然后我用kill -HUP 1重新啟動 apache,網站按預期工作。 有誰知道這里的問題是什么?

您是否嘗試過在 Dockerfile 中進行安裝和 apache 重新啟動?

就像是:

FROM php:7.4.12-apache

RUN apt-get clean && apt-get update && apt-get install -y php7.4-mysqli; 

RUN service apache2 restart;

那么你的 docker-compose 可能是:

[...]

webserver:
    build:
      context: .
      dockerfile: docker/webserver/Dockerfile
    depends_on:
      - mysql
    restart: always
    volumes:
      - ./data/webserver:/var/www/html/
    ports:
      - 8888:80

[...]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM