Imej Docker: Integrasi PHP 8.0, Apache dan phpMyAdmin
P粉186017651
P粉186017651 2024-03-31 18:19:17
0
1
316

Saya sedang mencipta imej untuk projek php8 yang dijalankan pada apache dan menggunakan phpMyAdmin, fail Docker saya adalah seperti berikut:

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 saya adalah seperti berikut:

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

Bagi saya, semuanya baik-baik saja, tetapi apabila saya menjalankan "docker compose up --build", bekas itu bermula tetapi dia tidak memasang "mysqli" dan "pdo_mysql" seperti yang saya minta dalam Dockerfile.

Tetapi jika saya log masuk ke dalam bekas PHP melalui CLI dan menjalankan docker-php-ext-install mysqlidocker-php-ext-install pdo_mysql ia berfungsi dan saya hanya memulakan semula bekas PHP.

Tapi, tak tahu kenapa, dari awal tak boleh install?

Terima kasih atas bantuan anda.

P粉186017651
P粉186017651

membalas semua(1)
P粉541551230

Terima kasih kepada komen Lety, kami hanya perlu menukar baris 4 docker-compose.yml Pengarang:

build: ./php

(menunjukkan direktori di mana Dockerfile terletak) dan ia berfungsi.

Sambung semula: Jangan tukar Dockerfile . Tukar docker-compose.yml Pengarang:

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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!