Docker 文件安装错误的 php

发布于 2025-01-11 06:03:15 字数 3326 浏览 2 评论 0原文

我有一个 laravel/php docker 映像,已更新为 PHP 8.1 - 我现在尝试返回到我们的项目版本 7.3,但无法工作。

这是我的 YAML

###############################################################################
#                          Generated on forwardforce.io                          #
###############################################################################
version: "3.1"
services:

  postgres:
    image: postgres:11.1-alpine
    container_name: mtn-postgres
    working_dir: /application
    volumes:
    - db:/var/lib/postgresql/data
    - .:/application
    ports:
    - 5001:5432
    environment:
    - POSTGRES_USER=root
    - POSTGRES_PASSWORD=root
    - POSTGRES_DB=forge

  webserver:
    image: nginx:alpine
    container_name: mtn-webserver
    working_dir: /application
    volumes:
    - .:/application
    - ./phpdocker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf
    ports:
    - "8091:80"
    tty: true

  php-fpm:
    build: phpdocker/php-fpm
    container_name: mtn-php-fpm
    working_dir: /application
    environment:
      XDEBUG_CONFIG: "remote_host=docker.for.mac.host.internal"
      PHP_IDE_CONFIG: "serverName=MTN-Docker"
    image: php:7.2-alpine
    volumes:
    - .:/application
    - ./phpdocker/php-fpm/php-ini-overrides.ini:/etc/php/7.2/fpm/conf.d/99-overrides.ini

volumes:
    db:

,这是我的 Dockerfile

FROM php:7.4-fpm-alpine

WORKDIR "/application"

# Fix debconf warnings upon build
ARG DEBIAN_FRONTEND=noninteractive

# Install git
RUN apt-get update \
    && apt-get -y install libpng-dev \
    && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*

# Install selected extensions and other stuff
RUN apt-get update \
    && apt-get -y --no-install-recommends install  php7.2-pgsql php7.2-gd php-xdebug php-ssh2 \
    && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*

# Install git
RUN apt-get update \
    && apt-get -y install git \
    && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*

# Install php-imagick
RUN apt-get update \
    && apt-get -y install php-imagick \
    && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*

# Install Node.js, Yarn and required dependencies
RUN apt-get update \
  && apt-get install -y curl gnupg build-essential \
  && curl --silent --location https://deb.nodesource.com/setup_10.x | bash - \
  && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
  && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \
  && apt-get remove -y --purge cmdtest \
  && apt-get update \
  && apt-get install -y nodejs yarn \
  # remove useless files from the current layer
  && rm -rf /var/lib/apt/lists/* \
  && rm -rf /var/lib/apt/lists.d/* \
  && apt-get autoremove \
  && apt-get clean \
  && apt-get autoclean

RUN npm install -g cordova ionic
RUN npm i -D -E -g @angular/cli

我已经删除了 docker 缓存 &容器并运行: docker-compose up -d --force-recreate --build

但我确实在构建运行时看到“59bf1c3509f3 已经存在”。完成后我有最新版本的 PHP 8.13

那么它可能是我没有清除的其他地方的不同缓存吗?或者我如何强制安装 PHP 7.2 或 7.3

I have a laravel/php docker image that I updated to PHP 8.1 - I am now trying to go back to our project version 7.3 and won't work.

here's my YAML

###############################################################################
#                          Generated on forwardforce.io                          #
###############################################################################
version: "3.1"
services:

  postgres:
    image: postgres:11.1-alpine
    container_name: mtn-postgres
    working_dir: /application
    volumes:
    - db:/var/lib/postgresql/data
    - .:/application
    ports:
    - 5001:5432
    environment:
    - POSTGRES_USER=root
    - POSTGRES_PASSWORD=root
    - POSTGRES_DB=forge

  webserver:
    image: nginx:alpine
    container_name: mtn-webserver
    working_dir: /application
    volumes:
    - .:/application
    - ./phpdocker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf
    ports:
    - "8091:80"
    tty: true

  php-fpm:
    build: phpdocker/php-fpm
    container_name: mtn-php-fpm
    working_dir: /application
    environment:
      XDEBUG_CONFIG: "remote_host=docker.for.mac.host.internal"
      PHP_IDE_CONFIG: "serverName=MTN-Docker"
    image: php:7.2-alpine
    volumes:
    - .:/application
    - ./phpdocker/php-fpm/php-ini-overrides.ini:/etc/php/7.2/fpm/conf.d/99-overrides.ini

volumes:
    db:

and here's my Dockerfile

FROM php:7.4-fpm-alpine

WORKDIR "/application"

# Fix debconf warnings upon build
ARG DEBIAN_FRONTEND=noninteractive

# Install git
RUN apt-get update \
    && apt-get -y install libpng-dev \
    && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*

# Install selected extensions and other stuff
RUN apt-get update \
    && apt-get -y --no-install-recommends install  php7.2-pgsql php7.2-gd php-xdebug php-ssh2 \
    && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*

# Install git
RUN apt-get update \
    && apt-get -y install git \
    && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*

# Install php-imagick
RUN apt-get update \
    && apt-get -y install php-imagick \
    && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*

# Install Node.js, Yarn and required dependencies
RUN apt-get update \
  && apt-get install -y curl gnupg build-essential \
  && curl --silent --location https://deb.nodesource.com/setup_10.x | bash - \
  && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
  && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \
  && apt-get remove -y --purge cmdtest \
  && apt-get update \
  && apt-get install -y nodejs yarn \
  # remove useless files from the current layer
  && rm -rf /var/lib/apt/lists/* \
  && rm -rf /var/lib/apt/lists.d/* \
  && apt-get autoremove \
  && apt-get clean \
  && apt-get autoclean

RUN npm install -g cordova ionic
RUN npm i -D -E -g @angular/cli

I have deleted docker cache & containers and ran:
docker-compose up -d --force-recreate --build

But I do see "59bf1c3509f3 Already exists " in the build while it's running. And after it's finished I have the latest version of PHP 8.13

So could it be a different cache somewhere else I am not clearing? Or how can I force install of PHP 7.2 o 7.3

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

人生戏 2025-01-18 06:03:15

apt 是基于 Debian 的发行版的包管理器。使用 apk 来管理 Alpine Linux 上的软件包。请参阅如何使用此映像

apt is the package manager for Debian based distribution. Use apk to manage software packages on Alpine Linux. See How to use this image.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文