[英]PHP 8.0 - Apache - phpMyAdmin - Docker Image
我正在為在 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 mysqli
和 docker docker-php-ext-install pdo_mysql
,它可以工作,我只需要重新啟動 Z2FEC392304A5C237AC18DA2284 容器。
但是,我不知道為什么,我不能從一開始就安裝它?
謝謝您的幫助。
感謝 Lety 的評論,我們只需將 docker-compose.yml 的第 4 行更改為:
build: ./php
(以指示 Dockerfile 所在的目錄)並且它可以工作。
簡歷:不要更改 Dockerfile。 將 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.