Docker PHP 8.2 fpm alpine不会安装8.2 PHP [已关闭]

ryoqjall  于 2023-02-03  发布在  PHP
关注(0)|答案(1)|浏览(347)

这个问题似乎与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
voj3qocg

voj3qocg1#

所以我接受纠正。事实证明我对Docker的看法是错误的,错误在我身上。在开始这次对话后,我开始研究Ubuntu接口。查看运行的容器并检查PHP版本(我应该从一开始就检查),它显示为PHP 8.2。
关于这件事我还有很多要学。谢谢所有帮助我的人。

相关问题