Docker映像:PHP 8.0、Apache和phpMyAdmin的集成
P粉186017651
P粉186017651 2024-03-31 18:19:17
0
1
487

我正在為在 apache 上運行的 php8 專案建立一個映像,並使用 phpMyAdmin,我的 Dockerfile 如下:

FROM php:8.0-apache
RUN apt-get update -y && apt-get install -y libmariadb-dev && docker-php-ext-install mysqli && docker-php-ext-install pdo_mysql
WORKDIR /var/www/html

我的 docker-compose.yml 如下:

services:
  php-apache-environment:
    container_name: php-apache
    image: php:8.0-apache
    volumes:
      - ./php/src:/var/www/html/
    ports:
      - 8000:80

  db:
    container_name: db
    image: mysql:latest
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: MYSQL_ROOT_PASSWORD
      MYSQL_DATABASE: MY_DATABASE
      MYSQL_USER: MYSQL_USER
      MYSQL_PASSWORD: MYSQL_PASSWORD
    ports:
      - "9906:3306"
  phpmyadmin:
    image: phpmyadmin:latest
    ports:
      - '8080:80'
    restart: always
    environment:
      PMA_HOST: db
    depends_on:
      - db

對我來說,一切都很好,但是當我運行“docker compose up --build”時,容器啟動了,但他沒有像我在Dockerfile 中請求的那樣安裝“mysqli”和“pdo_mysql” 。

但是,如果我透過CLI 登入PHP 容器,並且執行docker-php-ext-install mysqlidocker-php-ext-install pdo_mysql,它就可以工作,我只需重新啟動PHP 容器即可.

但是,我不知道為什麼,我無法從一開始就安裝它?

感謝您的幫忙。

P粉186017651
P粉186017651

全部回覆(1)
P粉541551230

感謝Lety的評論,我們只需要更改docker-compose.yml的第4行 作者:

build: ./php

(指示 Dockerfile 所在的目錄)並且它可以工作。

履歷: 不要更改 Dockerfile . Change the docker-compose.yml 作者:

version: '3.8'
services:
  php-apache-environment:
    container_name: php-apache
    build: ./php
    volumes:
      - ./php/src:/var/www/html/
    ports:
      - 8000:80

  db:
    container_name: db
    image: mysql:latest
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: MYSQL_ROOT_PASSWORD
      MYSQL_DATABASE: MY_DATABASE
      MYSQL_USER: MYSQL_USER
      MYSQL_PASSWORD: MYSQL_PASSWORD
    ports:
      - "9906:3306"
  phpmyadmin:
    image: phpmyadmin:latest
    ports:
      - '8080:80'
    restart: always
    environment:
      PMA_HOST: db
    depends_on:
      - db
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板