Docker 文件安装错误的 php
我有一个 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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
apt
是基于 Debian 的发行版的包管理器。使用apk
来管理 Alpine Linux 上的软件包。请参阅如何使用此映像。apt
is the package manager for Debian based distribution. Useapk
to manage software packages on Alpine Linux. See How to use this image.