- 已关闭。**此问题不符合Stack Overflow guidelines。当前不接受答案。
这个问题似乎与help center中定义的范围内的编程无关。
3天前关闭。
Improve this question
我必须承认我已经准备好把头撞到墙上了。我已经为此工作了好几天,阅读文章,想尽一切办法让Docker安装PHP 8. 2 FMP Alpine容器,但都没有运气。
现在,我已经有了一个运行7.2-fpm-alpine项目的工作容器,我没有设置这个。
有趣的是它运行在我的XAMPP中的php.ini上,XAMPP的PHP版本是7.4。我在XAMPP中有几个其他的项目,我目前无法删除。
新项目要求我使用laravel9和PHP 8.2。我遇到的第一个问题是pecl xdebug。我想我已经解决了!但是无论我做什么,它都不会升级容器中的PHP。它总是会获取XAMPP php.ini并保持7.4版本。
FROM php:8.2-fpm-alpine3.17
RUN apk update
# Pull in nproc:
RUN apk add --no-cache coreutils
# Required for bandwidth graphs:
RUN apk add --no-cache net-snmp-tools
# Install the linux-headers package:
RUN apk add --update linux-headers
# ZIP:
RUN apk add --no-cache libzip-dev zlib-dev
RUN docker-php-ext-configure zip
#--with-libzip
RUN docker-php-ext-install -j "$(nproc)" zip
# GMP:
RUN apk add --no-cache gmp-dev
RUN docker-php-ext-configure gmp
RUN docker-php-ext-install -j "$(nproc)" gmp
# GD:
RUN apk add --no-cache libpng-dev
RUN docker-php-ext-configure gd
RUN docker-php-ext-install -j "$(nproc)" gd
# MYSQL PDO DRIVER:
RUN docker-php-ext-configure pdo_mysql
RUN docker-php-ext-install -j "$(nproc)" pdo_mysql
# XDEBUG:
RUN apk add --no-cache $PHPIZE_DEPS
RUN apk add php81-pecl-xdebug
RUN apk add --update linux-headers
#RUN MAKEFLAGS="-j $(nproc)" pecl install xdebug
#RUN docker-php-ext-enable xdebug
# Move php-fpm off of xdebug's port:
RUN sed -i 's/9000/9003/' /usr/local/etc/php-fpm.d/zz-docker.conf
RUN echo 'clear_env = no' >> /usr/local/etc/php-fpm.conf
COPY . /var/www/studio
WORKDIR /var/www/studio
RUN php contrib/composer-installer \
--2 \
--filename composer \
--install-dir /usr/local/bin
RUN addgroup -S art
RUN adduser -G art -S art
RUN chown -R art /var/www/studio
RUN chgrp -R art /var/www/studio
USER art
RUN composer --no-interaction --profile -vvv install
RUN composer check-platform-reqs
#RUN php artisan passport:keys
USER root
# Cleanup
RUN rm -f /usr/local/bin/composer
RUN rm -f /usr/src/php.tar.xz
RUN rm -f /usr/src/php.tar.xz.asc
RUN rm -rf contrib
RUN rm -rf /home/art/.composer
USER art
$ php --ini
Configuration File (php.ini) Path:
Loaded Configuration File: C:\xampp\php\php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed: (none)
$ php -v
PHP 7.4.20 (cli) (built: Jun 1 2021 20:31:10) ( ZTS Visual C++ 2017 x64 )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
如果我转到/usr/local/etc/
,它是空的,没有php
目录或php.d
。
我在这里不知所措。
version: "3.8"
x-env: &env
APP_DEBUG_FILE: php://stdout
DB_HOST: db
DB_PORT: 3306
DB_DATABASE: artdb
DB_USERNAME: local
DB_PASSWORD: local
x-php: &php
init: true
x-studio: &studio
<<: *php
environment: << *env
x-tasks: &tasks
<<: *php
environment:
<<: *env
APP_ALERT_LOG: php://stdout
APP_CONFTOOL_LOG: php://stdout
APP_REPORT_LOG: php://stdout
services:
studio:
<<: *php
build:
context: art/studio
dockerfile: contrib/localhost-fpm.Dockerfile
depends_on:
- db
environment:
<<: *env
volumes:
- ./art/studio:/var/www/studio
# Expose xdebug's port:
ports:
- 9000:9000
db:
image: mariadb:10
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_USER=local
- MYSQL_PASSWORD=local
- MYSQL_DATABASE=local
volumes:
- ./data:/docker-entrypoint-initdb.d
ports:
- 3306:3306
user: mysql
nginx-studio:
build:
context: art/studio
dockerfile: contrib/localhost-nginx.Dockerfile
ports:
- 8080:8080
depends_on:
- studio
1条答案
按热度按时间voj3qocg1#
所以我接受纠正。事实证明我对Docker的看法是错误的,错误在我身上。在开始这次对话后,我开始研究Ubuntu接口。查看运行的容器并检查PHP版本(我应该从一开始就检查),它显示为PHP 8.2。
关于这件事我还有很多要学。谢谢所有帮助我的人。